48 lines
746 B
Go
48 lines
746 B
Go
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{},
|
|
&Session{},
|
|
&Message{},
|
|
&SessionEvent{},
|
|
&Category{},
|
|
&KnowledgeEntry{},
|
|
&QuickReply{},
|
|
&Plan{},
|
|
&OperationLog{},
|
|
&Announcement{},
|
|
&TenantSetting{},
|
|
)
|
|
}
|