1
0
Fork 0

[golang] fixed sql migrations

This commit is contained in:
Julien Dessaux 2024-06-01 01:25:16 +02:00
parent 4069b524b2
commit 44477a6dbd
Signed by: adyxax
GPG key ID: F92E51B86E07177E
3 changed files with 25 additions and 12 deletions

View file

@ -61,15 +61,22 @@ func DBInit(ctx context.Context, url string) (myDB *DB, err error) {
return nil, err
}
tx, err := db.Begin()
if err != nil {
return nil, err
}
for version < len(statements) {
if _, err = db.ExecContext(ctx, statements[version]); err != nil {
if _, err = tx.ExecContext(ctx, statements[version]); err != nil {
tx.Rollback()
return nil, err
}
version++
}
if _, err = db.ExecContext(ctx, `DELETE FROM schema_version; INSERT INTO schema_version (version) VALUES (?);`, version); err != nil {
if _, err = tx.ExecContext(ctx, `DELETE FROM schema_version; INSERT INTO schema_version (version) VALUES (?);`, version); err != nil {
tx.Rollback()
return nil, err
}
tx.Commit()
return &DB{ctx: ctx, db: db}, nil
}