@@ -172,7 +172,7 @@ func (dbm *databaseMigrator) Migrate() error {
172172 panic (p )
173173 }
174174 }()
175- _ , err = tx .Exec (context .Background (), dbm .replaceEnv ("LOCK TABLE SCHEMA_TABLE IN ACCESS EXCLUSIVE MODE" ))
175+ _ , err = tx .Exec (context .Background (), dbm .replaceEnv ("LOCK TABLE { SCHEMA_TABLE} IN ACCESS EXCLUSIVE MODE" ))
176176 if err != nil {
177177 return err
178178 }
@@ -238,7 +238,7 @@ func (dbm *databaseMigrator) applyMigration(migration migration, tx pgx.Tx) erro
238238
239239func (dbm * databaseMigrator ) getMigrationStatus (id string , tx pgx.Tx ) (migrationStatus , error ) {
240240 //goland:noinspection SqlResolve
241- query := dbm .replaceEnv ("SELECT status FROM SCHEMA_TABLE WHERE id = $1 FOR UPDATE" )
241+ query := dbm .replaceEnv ("SELECT status FROM { SCHEMA_TABLE} WHERE id = $1 FOR UPDATE" )
242242 row := tx .QueryRow (context .Background (), query , id )
243243 var migrationStatus migrationStatus
244244 err := row .Scan (& migrationStatus )
@@ -253,7 +253,7 @@ func (dbm *databaseMigrator) getMigrationStatus(id string, tx pgx.Tx) (migration
253253
254254func (dbm * databaseMigrator ) updateMigrationStatus (id string , migration migration , status migrationStatus , tx pgx.Tx ) error {
255255 //goland:noinspection SqlResolve
256- insert := dbm .replaceEnv ("INSERT INTO SCHEMA_TABLE (id, name, filename, status, timestamp) VALUES ($1, $2, $3, $4, $5) ON CONFLICT (id) DO UPDATE SET status = $4, timestamp = $5" )
256+ insert := dbm .replaceEnv ("INSERT INTO { SCHEMA_TABLE} (id, name, filename, status, timestamp) VALUES ($1, $2, $3, $4, $5) ON CONFLICT (id) DO UPDATE SET status = $4, timestamp = $5" )
257257 _ , err := tx .Exec (context .Background (), insert , id , migration .Name , migration .Filename , status , time .Now ())
258258 if err != nil {
259259 log .Printf ("Error inserting migration info %v: %v" , migration .Filename , err )
@@ -360,7 +360,8 @@ func (dbm *databaseMigrator) createChangelogTable() error {
360360 }
361361 }()
362362 script := `
363- CREATE TABLE SCHEMA_TABLE
363+ CREATE SCHEMA IF NOT EXISTS {SCHEMA};
364+ CREATE TABLE IF NOT EXISTS {SCHEMA_TABLE}
364365 (
365366 id TEXT PRIMARY KEY NOT NULL,
366367 name TEXT NOT NULL,
@@ -381,7 +382,9 @@ func (dbm *databaseMigrator) createChangelogTable() error {
381382}
382383
383384func (dbm * databaseMigrator ) replaceEnv (s string ) string {
384- return strings .ReplaceAll (s , "SCHEMA_TABLE" , dbm .Configuration .schemaTable ())
385+ s = strings .ReplaceAll (s , "{SCHEMA_TABLE}" , dbm .Configuration .schemaTable ())
386+ s = strings .ReplaceAll (s , "{SCHEMA}" , dbm .Configuration .ChangelogSchema )
387+ return s
385388}
386389
387390func DoInTransaction [R any ](pool * pgxpool.Pool , fn func (tx pgx.Tx ) (* R , error )) (* R , error ) {
0 commit comments