From 4e584d2e2d49c09eee9d405dc513adab93b33776 Mon Sep 17 00:00:00 2001 From: OpenAI Codex Date: Wed, 7 Oct 2026 03:55:55 +0000 Subject: [PATCH] fix(migrations): resolve duplicate goose versions --- ...le_proxy_request_buffering_by_default.sql} | 0 ...le_proxy_request_buffering_by_default.sql} | 0 .../persistence/migrator/migrator_test.go | 25 +++++++++++++++++++ 3 files changed, 25 insertions(+) rename internal/infra/persistence/migrator/goose/postgres/{202610070002_enable_proxy_request_buffering_by_default.sql => 202610070003_enable_proxy_request_buffering_by_default.sql} (100%) rename internal/infra/persistence/migrator/goose/sqlite/{202610070002_enable_proxy_request_buffering_by_default.sql => 202610070003_enable_proxy_request_buffering_by_default.sql} (100%) diff --git a/internal/infra/persistence/migrator/goose/postgres/202610070002_enable_proxy_request_buffering_by_default.sql b/internal/infra/persistence/migrator/goose/postgres/202610070003_enable_proxy_request_buffering_by_default.sql similarity index 100% rename from internal/infra/persistence/migrator/goose/postgres/202610070002_enable_proxy_request_buffering_by_default.sql rename to internal/infra/persistence/migrator/goose/postgres/202610070003_enable_proxy_request_buffering_by_default.sql diff --git a/internal/infra/persistence/migrator/goose/sqlite/202610070002_enable_proxy_request_buffering_by_default.sql b/internal/infra/persistence/migrator/goose/sqlite/202610070003_enable_proxy_request_buffering_by_default.sql similarity index 100% rename from internal/infra/persistence/migrator/goose/sqlite/202610070002_enable_proxy_request_buffering_by_default.sql rename to internal/infra/persistence/migrator/goose/sqlite/202610070003_enable_proxy_request_buffering_by_default.sql diff --git a/internal/infra/persistence/migrator/migrator_test.go b/internal/infra/persistence/migrator/migrator_test.go index cd55aded..10a61bb7 100644 --- a/internal/infra/persistence/migrator/migrator_test.go +++ b/internal/infra/persistence/migrator/migrator_test.go @@ -5,6 +5,7 @@ package migrator import ( "context" + "io/fs" "strings" "testing" @@ -25,6 +26,30 @@ import ( // 错误页、SW 离线、日志保留期、指标保留期等);新增配置 seed 迁移时需同步更新本常量。 const expectedMigratedSystemConfigCount = 95 +func TestGooseMigrationVersionsAreUniquePerDialect(t *testing.T) { + for _, dir := range []string{"goose/postgres", "goose/sqlite"} { + files, err := fs.Glob(migrationFS, dir+"/*.sql") + if err != nil { + t.Fatalf("glob %s migrations: %v", dir, err) + } + + versions := make(map[string]string, len(files)) + for _, file := range files { + name := strings.TrimPrefix(file, dir+"/") + version, _, ok := strings.Cut(name, "_") + if !ok { + t.Errorf("migration %q does not include a version prefix", file) + continue + } + if previous, exists := versions[version]; exists { + t.Errorf("%s has duplicate migration version %s in %q and %q", dir, version, previous, name) + continue + } + versions[version] = name + } + } +} + func TestMigrateInitializesSQLiteDatabase(t *testing.T) { sqliteDB, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{ DisableForeignKeyConstraintWhenMigrating: true,