mirror of https://github.com/pressly/goose.git
migrate: consolidate usage of FinalizeMigration
was previously duplicated in migration_go and migration_sqlpull/2/head
parent
2c03705655
commit
9a61ce5e3f
|
@ -360,6 +360,20 @@ func CreateMigration(name, migrationType, dir string, t time.Time) (path string,
|
|||
return
|
||||
}
|
||||
|
||||
// Update the version table for the given migration,
|
||||
// and finalize the transaction.
|
||||
func FinalizeMigration(conf *DBConf, txn *sql.Tx, direction bool, v int64) error {
|
||||
|
||||
// XXX: drop goose_db_version table on some minimum version number?
|
||||
stmt := conf.Driver.Dialect.insertVersionSql()
|
||||
if _, err := txn.Exec(stmt, v, direction); err != nil {
|
||||
txn.Rollback()
|
||||
return err
|
||||
}
|
||||
|
||||
return txn.Commit()
|
||||
}
|
||||
|
||||
var goMigrationTemplate = template.Must(template.New("goose.go-migration").Parse(`
|
||||
package main
|
||||
|
||||
|
|
|
@ -129,14 +129,7 @@ func main() {
|
|||
|
||||
{{ .Func }}(txn)
|
||||
|
||||
// XXX: drop goose_db_version table on some minimum version number?
|
||||
stmt := "{{ .InsertStmt }}"
|
||||
if _, err = txn.Exec(stmt, int64({{ .Version }}), {{ .Direction }}); err != nil {
|
||||
txn.Rollback()
|
||||
log.Fatal("failed to write version: ", err)
|
||||
}
|
||||
|
||||
err = txn.Commit()
|
||||
err = goose.FinalizeMigration(&conf, txn, {{ .Direction }}, {{ .Version }})
|
||||
if err != nil {
|
||||
log.Fatal("Commit() failed:", err)
|
||||
}
|
||||
|
|
|
@ -148,23 +148,9 @@ func runSQLMigration(conf *DBConf, db *sql.DB, script string, v int64, direction
|
|||
}
|
||||
}
|
||||
|
||||
if err = finalizeMigration(conf, txn, direction, v); err != nil {
|
||||
if err = FinalizeMigration(conf, txn, direction, v); err != nil {
|
||||
log.Fatalf("error finalizing migration %s, quitting. (%v)", filepath.Base(script), err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Update the version table for the given migration,
|
||||
// and finalize the transaction.
|
||||
func finalizeMigration(conf *DBConf, txn *sql.Tx, direction bool, v int64) error {
|
||||
|
||||
// XXX: drop goose_db_version table on some minimum version number?
|
||||
d := conf.Driver.Dialect
|
||||
if _, err := txn.Exec(d.insertVersionSql(), v, direction); err != nil {
|
||||
txn.Rollback()
|
||||
return err
|
||||
}
|
||||
|
||||
return txn.Commit()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue