fix: move timeout migration outside schema version check
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
|||||||
// 触发一次 AutoMigrate 并把新版本写入库(SQLite 用 PRAGMA user_version)。
|
// 触发一次 AutoMigrate 并把新版本写入库(SQLite 用 PRAGMA user_version)。
|
||||||
// AutoMigrate 对已有表的列判定不收敛(每次都重建表:CREATE __temp + INSERT SELECT + DROP),
|
// AutoMigrate 对已有表的列判定不收敛(每次都重建表:CREATE __temp + INSERT SELECT + DROP),
|
||||||
// 大表上一次重建数十秒且每次重启重演,所以之后版本未变就直接跳过。
|
// 大表上一次重建数十秒且每次重启重演,所以之后版本未变就直接跳过。
|
||||||
const schemaVersion = 2
|
const schemaVersion = 1
|
||||||
|
|
||||||
// Open 打开数据库连接并自动迁移。
|
// Open 打开数据库连接并自动迁移。
|
||||||
// 开发默认 SQLite(dsn 支持 file:...?_journal_mode=WAL),生产可切 postgres。
|
// 开发默认 SQLite(dsn 支持 file:...?_journal_mode=WAL),生产可切 postgres。
|
||||||
@@ -48,13 +48,12 @@ func Open(driver, dsn string) (*gorm.DB, error) {
|
|||||||
if err := db.AutoMigrate(AllModels()...); err != nil {
|
if err := db.AutoMigrate(AllModels()...); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// v2: 将已有渠道的超时时间从 120000ms 更新为 300000ms
|
|
||||||
db.Model(&Channel{}).Where("timeout_ms = ?", 120000).Update("timeout_ms", 300000)
|
|
||||||
log.Println("store: migrated schema v1 -> v2: updated channel timeout_ms to 300000")
|
|
||||||
if driver != "postgres" {
|
if driver != "postgres" {
|
||||||
setSQLiteVersion(db, schemaVersion)
|
setSQLiteVersion(db, schemaVersion)
|
||||||
}
|
}
|
||||||
log.Printf("store: connected driver=%s (migrated, schema v%d)", driver, schemaVersion)
|
log.Printf("store: connected driver=%s (migrated, schema v%d)", driver, schemaVersion)
|
||||||
|
// 将已有渠道的超时时间从 120000ms 更新为 300000ms(幂等操作)
|
||||||
|
db.Model(&Channel{}).Where("timeout_ms = ?", 120000).Update("timeout_ms", 300000)
|
||||||
return db, nil
|
return db, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user