diff --git a/config.yaml b/config.yaml index f411f36..7ab9dcb 100644 --- a/config.yaml +++ b/config.yaml @@ -3,6 +3,7 @@ server: database: driver: sqlite dsn: otpm.sqlite + skip_migration: false port: 8080 auth: @@ -11,4 +12,4 @@ auth: wechat: appid: "wx57d1033974eb5250" - secret: "be494c2a81df685a40b9a74e1736b15d" + secret: "be494c2a81df685a40b9a74e1736b15d" \ No newline at end of file diff --git a/database/database.go b/database/database.go index be8aa03..bad6d8f 100644 --- a/database/database.go +++ b/database/database.go @@ -37,12 +37,28 @@ func InitDB() (*sqlx.DB, error) { } func MigrateDB(db *sqlx.DB) error { - if _, err := db.Exec(userTable); err != nil { - return fmt.Errorf("failed to create user migration: %w", err) + // 检查是否需要执行迁移 + skipMigration := viper.GetBool("database.skip_migration") + if skipMigration { + log.Println("Skipping database migration as configured") + return nil } - if _, err := db.Exec(otpTable); err != nil { - return fmt.Errorf("failed to create otp migration: %w", err) + // 执行用户表迁移 + if _, err := db.Exec(userTable); err != nil { + log.Printf("Warning: failed to create user migration: %v", err) + // 继续执行,不返回错误 + } else { + log.Println("User table migration completed successfully") } + + // 执行OTP表迁移 + if _, err := db.Exec(otpTable); err != nil { + log.Printf("Warning: failed to create otp migration: %v", err) + // 继续执行,不返回错误 + } else { + log.Println("OTP table migration completed successfully") + } + return nil }