From be915f2be7c33139ebef550f5b71cd385453cb65 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Wed, 16 Apr 2025 11:16:16 +0200 Subject: [PATCH] sqldb: add support for test migrations Add `migrations_dev.go` and `migrations_prod.go` files which each define a `migrationAdditions` slice to be appended to the `migrationConfig` slice. The `migrations_dev.go` file is only built if either the `test_db_postgres` or `test_db_sqlite` build flags are used. This slice will be used to add any migrations that are still under development that we want access to via unit tests and itests but do not want to expose to our release build. --- sqldb/migrations.go | 4 ++-- sqldb/migrations_dev.go | 5 +++++ sqldb/migrations_prod.go | 5 +++++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 sqldb/migrations_dev.go create mode 100644 sqldb/migrations_prod.go diff --git a/sqldb/migrations.go b/sqldb/migrations.go index 1eed29828..c14579c46 100644 --- a/sqldb/migrations.go +++ b/sqldb/migrations.go @@ -30,7 +30,7 @@ var ( // // NOTE: The migration function may have runtime dependencies, which // must be injected during runtime. - migrationConfig = []MigrationConfig{ + migrationConfig = append([]MigrationConfig{ { Name: "000001_invoices", Version: 1, @@ -70,7 +70,7 @@ var ( // schema. This is optional and can be disabled by the // user if necessary. }, - } + }, migrationAdditions...) ) // MigrationConfig is a configuration struct that describes SQL migrations. Each diff --git a/sqldb/migrations_dev.go b/sqldb/migrations_dev.go new file mode 100644 index 000000000..61323dbff --- /dev/null +++ b/sqldb/migrations_dev.go @@ -0,0 +1,5 @@ +//go:build test_db_postgres || test_db_sqlite + +package sqldb + +var migrationAdditions = []MigrationConfig{} diff --git a/sqldb/migrations_prod.go b/sqldb/migrations_prod.go new file mode 100644 index 000000000..551cf1fbb --- /dev/null +++ b/sqldb/migrations_prod.go @@ -0,0 +1,5 @@ +//go:build !test_db_postgres && !test_db_sqlite + +package sqldb + +var migrationAdditions []MigrationConfig