internal: ensure schema manager is closed (#5521)

This releases the connection it holds indefinitely
jbrandhorst-prototype-db-iface-changes
Johan Brandhorst-Satzkorn 1 year ago committed by GitHub
parent acc40e0d08
commit 5de0c8c102
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -46,11 +46,13 @@ func migrateDatabase(ctx context.Context, ui cli.Ui, dialect, u string, initiali
// This is an advisory lock on the DB which is released when the DB session ends.
if err := man.ExclusiveLock(ctx); err != nil {
ui.Error("Unable to capture a lock on the database.")
_ = man.Close(ctx)
return noop, 2
}
unlock := func() {
// We don't report anything since this should resolve itself anyways.
_ = man.ExclusiveUnlock(ctx)
_ = man.Close(ctx)
}
st, err := man.CurrentState(ctx)

@ -19,6 +19,7 @@ func ApplyMigration(t *testing.T, ctx context.Context, d *sql.DB, migrationId in
schema.TestCreatePartialEditions(schema.Dialect(dialect), schema.PartialEditions{"oss": migrationId}),
))
require.NoError(t, err)
t.Cleanup(func() { m.Close(context.Background()) })
_, err = m.ApplyMigrations(ctx)
require.NoError(t, err)
state, err := m.CurrentState(ctx)

@ -25,6 +25,7 @@ func MigrateStore(ctx context.Context, dialect Dialect, url string, opt ...Optio
if err != nil {
return false, errors.Wrap(ctx, err, op)
}
defer sMan.Close(ctx)
st, err := sMan.CurrentState(ctx)
if err != nil {

@ -125,6 +125,7 @@ func testInitStore(t testing.TB, cleanup func() error, url string) {
require.NoError(t, err)
sm, err := schema.NewManager(ctx, schema.Dialect(dialect), d)
require.NoError(t, err)
t.Cleanup(func() { sm.Close(context.Background()) })
_, err = sm.ApplyMigrations(ctx)
require.NoError(t, err)
}

Loading…
Cancel
Save