ferry/cmd/migrate/server.go

57 lines
1.3 KiB
Go
Raw Permalink Normal View History

2020-07-13 20:33:20 +08:00
package migrate
import (
"ferry/database"
"ferry/global/orm"
"ferry/models/gorm"
2020-07-15 11:30:31 +08:00
"ferry/models/system"
2020-08-15 23:34:37 +08:00
"ferry/pkg/logger"
2020-07-13 20:33:20 +08:00
config2 "ferry/tools/config"
"fmt"
"github.com/spf13/cobra"
)
var (
config string
mode string
StartCmd = &cobra.Command{
Use: "init",
Short: "initialize the database",
Run: func(cmd *cobra.Command, args []string) {
run()
},
}
)
func init() {
StartCmd.PersistentFlags().StringVarP(&config, "config", "c", "config/settings.yml", "Start server with provided configuration file")
StartCmd.PersistentFlags().StringVarP(&mode, "mode", "m", "dev", "server mode ; eg:dev,test,prod")
}
func run() {
usage := `start init`
fmt.Println(usage)
//1. 读取配置
config2.ConfigSetup(config)
2020-08-15 23:34:37 +08:00
//2. 初始化数据库链接
2020-07-13 20:33:20 +08:00
database.Setup()
2020-08-15 23:34:37 +08:00
//3. 数据库迁移
2020-07-13 20:33:20 +08:00
_ = migrateModel()
2020-08-15 23:34:37 +08:00
logger.Info("数据库结构初始化成功!")
//4. 数据初始化完成
2020-07-15 11:30:31 +08:00
if err := system.InitDb(); err != nil {
2020-08-15 23:34:37 +08:00
logger.Fatalf("数据库基础数据初始化失败,%v", err)
2020-07-15 11:30:31 +08:00
}
2020-07-13 20:33:20 +08:00
usage = `数据库基础数据初始化成功`
fmt.Println(usage)
}
func migrateModel() error {
if config2.DatabaseConfig.Dbtype == "mysql" {
orm.Eloquent = orm.Eloquent.Set("gorm:table_options", "ENGINE=InnoDB CHARSET=utf8mb4")
}
return gorm.AutoMigrate(orm.Eloquent)
}