mirror of https://github.com/pressly/goose.git
cleanup: provider disabled versioning states (#769)
parent
992628d83a
commit
9309665e0b
21
provider.go
21
provider.go
|
@ -175,6 +175,9 @@ func (p *Provider) GetVersions(ctx context.Context) (current, target int64, err
|
|||
// which migrations were applied. For example, if migrations were applied out of order (1,4,2,3),
|
||||
// this method returns 4. If no migrations have been applied, it returns 0.
|
||||
func (p *Provider) GetDBVersion(ctx context.Context) (int64, error) {
|
||||
if p.cfg.disableVersioning {
|
||||
return -1, errors.New("getting database version not supported when versioning is disabled")
|
||||
}
|
||||
return p.getDBMaxVersion(ctx, nil)
|
||||
}
|
||||
|
||||
|
@ -596,13 +599,17 @@ func (p *Provider) status(ctx context.Context) (_ []*MigrationStatus, retErr err
|
|||
},
|
||||
State: StatePending,
|
||||
}
|
||||
dbResult, err := p.store.GetMigration(ctx, conn, m.Version)
|
||||
if err != nil && !errors.Is(err, database.ErrVersionNotFound) {
|
||||
return nil, err
|
||||
}
|
||||
if dbResult != nil {
|
||||
migrationStatus.State = StateApplied
|
||||
migrationStatus.AppliedAt = dbResult.Timestamp
|
||||
// If versioning is disabled, we can't check the database for applied migrations, so we
|
||||
// assume all migrations are pending.
|
||||
if !p.cfg.disableVersioning {
|
||||
dbResult, err := p.store.GetMigration(ctx, conn, m.Version)
|
||||
if err != nil && !errors.Is(err, database.ErrVersionNotFound) {
|
||||
return nil, err
|
||||
}
|
||||
if dbResult != nil {
|
||||
migrationStatus.State = StateApplied
|
||||
migrationStatus.AppliedAt = dbResult.Timestamp
|
||||
}
|
||||
}
|
||||
status = append(status, migrationStatus)
|
||||
}
|
||||
|
|
|
@ -506,10 +506,9 @@ func TestNoVersioning(t *testing.T) {
|
|||
upResult, err := p.Up(ctx)
|
||||
check.NoError(t, err)
|
||||
check.Number(t, len(upResult), 2)
|
||||
// Confirm no changes to the versioned schema in the DB
|
||||
currentVersion, err := p.GetDBVersion(ctx)
|
||||
check.NoError(t, err)
|
||||
check.Number(t, baseVersion, currentVersion)
|
||||
// When versioning is disabled, we cannot track the version of the seed files.
|
||||
_, err = p.GetDBVersion(ctx)
|
||||
check.HasError(t, err)
|
||||
seedOwnerCount, err := countSeedOwners(db)
|
||||
check.NoError(t, err)
|
||||
check.Number(t, seedOwnerCount, wantSeedOwnerCount)
|
||||
|
@ -519,10 +518,9 @@ func TestNoVersioning(t *testing.T) {
|
|||
downResult, err := p.DownTo(ctx, 0)
|
||||
check.NoError(t, err)
|
||||
check.Number(t, len(downResult), 2)
|
||||
// Confirm no changes to the versioned schema in the DB
|
||||
currentVersion, err := p.GetDBVersion(ctx)
|
||||
check.NoError(t, err)
|
||||
check.Number(t, baseVersion, currentVersion)
|
||||
// When versioning is disabled, we cannot track the version of the seed files.
|
||||
_, err = p.GetDBVersion(ctx)
|
||||
check.HasError(t, err)
|
||||
seedOwnerCount, err := countSeedOwners(db)
|
||||
check.NoError(t, err)
|
||||
check.Number(t, seedOwnerCount, 0)
|
||||
|
|
Loading…
Reference in New Issue