package model import ( "log" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" ) var DB *gorm.DB func InitDB(dsn string) { var err error DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Info), }) if err != nil { log.Fatalf("数据库连接失败: %v", err) } err = Migrate(DB) if err != nil { log.Fatalf("数据库迁移失败: %v", err) } log.Println("数据库迁移完成") } func Migrate(db *gorm.DB) error { return db.AutoMigrate( &Tenant{}, &User{}, &Channel{}, &Customer{}, &CustomerTag{}, &CustomerContact{}, &BlacklistEntry{}, &Session{}, &VisitorPageView{}, &Message{}, &SessionEvent{}, &Category{}, &KnowledgeEntry{}, &QuickReply{}, &QuickReplyUserUsage{}, &Plan{}, &OperationLog{}, &Announcement{}, &TenantSetting{}, &Role{}, &Permission{}, &RolePermission{}, &RoleDataScope{}, ) }