Skip to content

Commit 63da979

Browse files
authored
Update pg.go
1 parent 73b57a4 commit 63da979

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

pg.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

239239
func (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

254254
func (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

383384
func (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

387390
func DoInTransaction[R any](pool *pgxpool.Pool, fn func(tx pgx.Tx) (*R, error)) (*R, error) {

0 commit comments

Comments
 (0)