Skip to content

Commit 2860ef6

Browse files
authored
migrations: Update memoryStore methods (for tests) (sourcegraph#30512)
1 parent 80ae070 commit 2860ef6

File tree

1 file changed

+22
-9
lines changed
  • internal/database/connections/test

1 file changed

+22
-9
lines changed

internal/database/connections/test/store.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ import (
1010
"github.com/sourcegraph/sourcegraph/internal/database/migration/runner"
1111
)
1212

13-
// memoryStore implements runner.Store but writes to migration metadata to any
14-
// underlying persistence layer.
13+
// memoryStore implements runner.Store but writes to migration metadata are
14+
// not passed to any underlying persistence layer.
1515
type memoryStore struct {
16-
db *sql.DB
17-
version int
18-
versionSet bool
19-
dirty bool
16+
db *sql.DB
17+
appliedVersions []int
18+
pendingVersions []int
19+
failedVersions []int
2020
}
2121

2222
func newMemoryStore(db *sql.DB) runner.Store {
@@ -34,7 +34,15 @@ func (s *memoryStore) Done(err error) error {
3434
}
3535

3636
func (s *memoryStore) Version(ctx context.Context) (int, bool, bool, error) {
37-
return s.version, s.dirty, s.versionSet, nil
37+
if n := len(s.appliedVersions); n > 0 {
38+
return s.appliedVersions[n-1], len(s.pendingVersions)+len(s.failedVersions) > 0, true, nil
39+
}
40+
41+
return 0, false, false, nil
42+
}
43+
44+
func (s *memoryStore) Versions(ctx context.Context) (appliedVersions, pendingVersions, failedVersions []int, _ error) {
45+
return s.appliedVersions, s.pendingVersions, s.failedVersions, nil
3846
}
3947

4048
func (s *memoryStore) Lock(ctx context.Context) (bool, func(err error) error, error) {
@@ -59,6 +67,11 @@ func (s *memoryStore) WithMigrationLog(_ context.Context, _ definition.Definitio
5967

6068
func (s *memoryStore) exec(ctx context.Context, migration definition.Definition, query *sqlf.Query) error {
6169
_, err := s.db.ExecContext(ctx, query.Query(sqlf.PostgresBindVar), query.Args()...)
62-
s.version, s.dirty, s.versionSet = migration.ID, s.dirty || err != nil, true
63-
return err
70+
if err != nil {
71+
s.failedVersions = append(s.failedVersions, migration.ID)
72+
return err
73+
}
74+
75+
s.appliedVersions = append(s.appliedVersions, migration.ID)
76+
return nil
6477
}

0 commit comments

Comments
 (0)