36 lines
830 B
Go
36 lines
830 B
Go
package main
|
|
|
|
import (
|
|
"EnGin/internal/db"
|
|
"EnGin/internal/global"
|
|
"context"
|
|
|
|
"github.com/spf13/cobra"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
var migrateCmd = &cobra.Command{
|
|
Use: "migrate",
|
|
Short: "执行数据库 Schema 自动迁移",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
err := db.InitDB(global.Config.Database.Driver, global.Config.Database.Dsn())
|
|
if err != nil {
|
|
global.Log.Fatal("连接数据库失败", zap.Error(err))
|
|
}
|
|
defer db.Close()
|
|
global.Log.Info("开始执行数据库 Schema 自动迁移...")
|
|
|
|
ctx := context.Background()
|
|
// 直接使用 db.Client 跨包调用
|
|
if err := db.Client.Schema.Create(ctx); err != nil {
|
|
global.Log.Fatal("Schema 迁移失败", zap.Error(err))
|
|
}
|
|
|
|
global.Log.Info("数据库 Schema 迁移执行完毕!")
|
|
},
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(migrateCmd)
|
|
}
|