diff options
author | Julien Dessaux | 2024-06-01 01:25:16 +0200 |
---|---|---|
committer | Julien Dessaux | 2024-06-01 01:25:16 +0200 |
commit | 44477a6dbd1398657c892d649b364439739c473c (patch) | |
tree | 8762cebe5988506bc8d5879e984cb599add93c68 /golang/pkg/database/migrations.go | |
parent | [golang] simplified the api design some more (diff) | |
download | spacetraders-44477a6dbd1398657c892d649b364439739c473c.tar.gz spacetraders-44477a6dbd1398657c892d649b364439739c473c.tar.bz2 spacetraders-44477a6dbd1398657c892d649b364439739c473c.zip |
[golang] fixed sql migrations
Diffstat (limited to '')
-rw-r--r-- | golang/pkg/database/migrations.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/golang/pkg/database/migrations.go b/golang/pkg/database/migrations.go index 94207a5..81cebaa 100644 --- a/golang/pkg/database/migrations.go +++ b/golang/pkg/database/migrations.go @@ -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 } |