sqldb: add support for custom in-code migrations

This commit introduces support for custom, in-code migrations, allowing
a specific Go function to be executed at a designated database version
during sqlc migrations. If the current database version surpasses the
specified version, the migration will be skipped.
This commit is contained in:
Andras Banki-Horvath
2024-11-22 18:29:54 +01:00
parent 9acd06d296
commit b789fb2db3
6 changed files with 565 additions and 20 deletions

View File

@@ -452,7 +452,7 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
var nativeSQLStore *sqldb.BaseDB
if db.UseNativeSQL {
nativePostgresStore, err := sqldb.NewPostgresStore(
db.Postgres,
db.Postgres, sqldb.GetMigrations(),
)
if err != nil {
return nil, fmt.Errorf("error opening "+
@@ -576,6 +576,7 @@ func (db *DB) GetBackends(ctx context.Context, chanDBPath,
nativeSQLiteStore, err := sqldb.NewSqliteStore(
db.Sqlite,
path.Join(chanDBPath, SqliteNativeDBName),
sqldb.GetMigrations(),
)
if err != nil {
return nil, fmt.Errorf("error opening "+