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,