1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package cmd
- import (
- "fmt"
- "go-nc/internal/bootstrap/boots"
- "go-nc/model"
- "os"
- "github.com/spf13/cobra"
- "go.uber.org/zap"
- "gorm.io/gorm"
- )
- var dbUpCmd = &cobra.Command{
- Use: "dbUp",
- Short: "dp.",
- Long: "数据库DB上传到数据库中",
- Run: runDbUp,
- }
- func init() {
- rootCmd.AddCommand(dbUpCmd)
- }
- func runDbUp(cmd *cobra.Command, args []string) {
- // TODO 这里处理dbUp子命令
- // 初始化配置
- boots.InitConfig()
- // 初始化日志
- log := boots.InitLog()
- // 初始化数据库
- db := boots.InitDB()
- // 自动迁移 User 模型
- if err := db.AutoMigrate(model.Models...); err != nil {
- log.Error("DB 表创建失败", zap.Error(err))
- } else {
- log.Info("DB 表创建成功")
- }
- // 构建 SQL 文件路径
- // projectRoot := utils.GetProjectRoot()
- // sqlFilePath := filepath.Join(projectRoot, "model/sql/initData.sql")
- // if _, err := os.Stat(sqlFilePath); err != nil {
- // sqlFilePath = utils.GetExePath() + "/configs/initData.sql"
- // }
- // // 执行 SQL 文件
- // executeSQLFile(db, sqlFilePath)
- // 释放数据库连接
- defer closeDBConnection(db)
- os.Exit(0)
- }
- // 执行 SQL 文件
- func executeSQLFile(db *gorm.DB, sqlFilePath string) {
- logger := boots.InitLogger()
- content, err := os.ReadFile(sqlFilePath)
- if err != nil {
- logger.Error("SQL: 读取初始SQL数据文件失败", zap.Error(err))
- return
- }
- err = db.Exec(string(content)).Error
- if err != nil {
- logger.Error("SQL: 执行初始SQL数据文件失败", zap.Error(err))
- return
- }
- logger.Info("SQL:执行初始SQL数据文件成功!")
- }
- func closeDBConnection(db *gorm.DB) {
- if db != nil {
- dbDB, err := db.DB()
- if err == nil {
- // 关闭数据库连接
- fmt.Println("数据库连接已关闭")
- dbDB.Close()
- }
- }
- }
|