Skip to content

Commit 71ddae3

Browse files
migrationstreams: introduce migrationstreams pkg
1 parent b70d7bb commit 71ddae3

File tree

11 files changed

+63
-19
lines changed

11 files changed

+63
-19
lines changed

accounts/test_sqlite.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"errors"
77
"testing"
88

9-
"github.com/lightninglabs/lightning-terminal/db"
9+
"github.com/lightninglabs/lightning-terminal/db/migrationstreams"
1010
"github.com/lightningnetwork/lnd/clock"
1111
"github.com/lightningnetwork/lnd/sqldb/v2"
1212
)
@@ -18,7 +18,8 @@ var ErrDBClosed = errors.New("database is closed")
1818
// NewTestDB is a helper function that creates an SQLStore database for testing.
1919
func NewTestDB(t *testing.T, clock clock.Clock) Store {
2020
return createStore(
21-
t, sqldb.NewTestSqliteDB(t, db.LitdMigrationStreams).BaseDB,
21+
t,
22+
sqldb.NewTestSqliteDB(t, migrationstreams.LitdMigrationStreams).BaseDB,
2223
clock,
2324
)
2425
}
@@ -28,7 +29,9 @@ func NewTestDB(t *testing.T, clock clock.Clock) Store {
2829
func NewTestDBFromPath(t *testing.T, dbPath string,
2930
clock clock.Clock) Store {
3031

31-
tDb := sqldb.NewTestSqliteDBFromPath(t, dbPath, db.LitdMigrationStreams)
32+
tDb := sqldb.NewTestSqliteDBFromPath(
33+
t, dbPath, migrationstreams.LitdMigrationStreams,
34+
)
3235

3336
return createStore(t, tDb.BaseDB, clock)
3437
}

config_dev.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/lightninglabs/lightning-terminal/accounts"
1010
"github.com/lightninglabs/lightning-terminal/db"
11+
"github.com/lightninglabs/lightning-terminal/db/migrationstreams"
1112
"github.com/lightninglabs/lightning-terminal/db/sqlc"
1213
"github.com/lightninglabs/lightning-terminal/firewalldb"
1314
"github.com/lightninglabs/lightning-terminal/session"
@@ -113,7 +114,7 @@ func NewStores(cfg *Config, clock clock.Clock) (*stores, error) {
113114

114115
if !cfg.Sqlite.SkipMigrations {
115116
err = sqldb.ApplyAllMigrations(
116-
sqlStore, db.LitdMigrationStreams,
117+
sqlStore, migrationstreams.LitdMigrationStreams,
117118
)
118119
if err != nil {
119120
return stores, fmt.Errorf("error applying "+
@@ -155,7 +156,7 @@ func NewStores(cfg *Config, clock clock.Clock) (*stores, error) {
155156

156157
if !cfg.Postgres.SkipMigrations {
157158
err = sqldb.ApplyAllMigrations(
158-
sqlStore, db.LitdMigrationStreams,
159+
sqlStore, migrationstreams.LitdMigrationStreams,
159160
)
160161
if err != nil {
161162
return stores, fmt.Errorf("error applying "+

db/migrations.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ func applyMigrations(fs fs.FS, driver database.Driver, path, dbName string,
120120
targetVersion MigrationTarget, opts *migrateOptions) error {
121121

122122
// With the migrate instance open, we'll create a new migration source
123-
// using the embedded file system stored in sqlSchemas. The library
123+
// using the embedded file system stored in SqlSchemas. The library
124124
// we're using can't handle a raw file system interface, so we wrap it
125125
// in this intermediate layer.
126126
migrateFileServer, err := httpfs.New(http.FS(fs), path)

db/migrationstreams/log.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package migrationstreams
2+
3+
import (
4+
"github.com/btcsuite/btclog/v2"
5+
"github.com/lightningnetwork/lnd/build"
6+
)
7+
8+
const Subsystem = "MIGS"
9+
10+
// log is a logger that is initialized with no output filters. This
11+
// means the package will not perform any logging by default until the caller
12+
// requests it.
13+
var log btclog.Logger
14+
15+
// The default amount of logging is none.
16+
func init() {
17+
UseLogger(build.NewSubLogger(Subsystem, nil))
18+
}
19+
20+
// UseLogger uses a specified Logger to output package logging info.
21+
// This should be used in preference to SetLogWriter if the caller is also
22+
// using btclog.
23+
func UseLogger(logger btclog.Logger) {
24+
log = logger
25+
}

db/sql_migrations.go renamed to db/migrationstreams/sql_migrations.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1-
package db
1+
package migrationstreams
22

33
import (
44
"github.com/golang-migrate/migrate/v4"
55
"github.com/golang-migrate/migrate/v4/database/pgx/v5"
6+
"github.com/lightninglabs/lightning-terminal/db"
67
"github.com/lightningnetwork/lnd/sqldb/v2"
78
)
89

910
var (
1011
LitdMigrationStream = sqldb.MigrationStream{
1112
MigrateTableName: pgx.DefaultMigrationsTable,
1213
SQLFileDirectory: "sqlc/migrations",
13-
Schemas: sqlSchemas,
14+
Schemas: db.SqlSchemas,
1415

1516
// LatestMigrationVersion is the latest migration version of the
1617
// database. This is used to implement downgrade protection for
1718
// the daemon.
1819
//
1920
// NOTE: This MUST be updated when a new migration is added.
20-
LatestMigrationVersion: LatestMigrationVersion,
21+
LatestMigrationVersion: db.LatestMigrationVersion,
2122

2223
MakePostMigrationChecks: func(
2324
db *sqldb.BaseDB) (map[uint]migrate.PostStepCallback,

db/postgres.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
postgres_migrate "github.com/golang-migrate/migrate/v4/database/postgres"
1010
_ "github.com/golang-migrate/migrate/v4/source/file"
11+
"github.com/lightninglabs/lightning-terminal/db/migrationstreams"
1112
"github.com/lightninglabs/lightning-terminal/db/sqlc"
1213
"github.com/lightningnetwork/lnd/sqldb/v2"
1314
"github.com/stretchr/testify/require"
@@ -149,7 +150,7 @@ func (s *PostgresStore) ExecuteMigrations(target MigrationTarget,
149150
return fmt.Errorf("error creating postgres migration: %w", err)
150151
}
151152

152-
postgresFS := newReplacerFS(sqlSchemas, postgresSchemaReplacements)
153+
postgresFS := newReplacerFS(SqlSchemas, postgresSchemaReplacements)
153154
return applyMigrations(
154155
postgresFS, driver, "sqlc/migrations", s.cfg.DBName, target,
155156
opts,
@@ -168,7 +169,9 @@ func NewTestPostgresDB(t *testing.T) *sqldb.PostgresStore {
168169
sqlFixture.TearDown(t)
169170
})
170171

171-
return sqldb.NewTestPostgresDB(t, sqlFixture, LitdMigrationStreams)
172+
return sqldb.NewTestPostgresDB(
173+
t, sqlFixture, migrationstreams.LitdMigrationStreams,
174+
)
172175
}
173176

174177
// NewTestPostgresDBWithVersion is a helper function that creates a Postgres

db/schemas.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import (
66
)
77

88
//go:embed sqlc/migrations/*.*.sql
9-
var sqlSchemas embed.FS
9+
var SqlSchemas embed.FS

db/sqlite.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ func (s *SqliteStore) ExecuteMigrations(target MigrationTarget,
235235
return fmt.Errorf("error creating sqlite migration: %w", err)
236236
}
237237

238-
sqliteFS := newReplacerFS(sqlSchemas, sqliteSchemaReplacements)
238+
sqliteFS := newReplacerFS(SqlSchemas, sqliteSchemaReplacements)
239239
return applyMigrations(
240240
sqliteFS, driver, "sqlc/migrations", "sqlite", target, opts,
241241
)

firewalldb/test_sqlite.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@ package firewalldb
55
import (
66
"testing"
77

8-
"github.com/lightninglabs/lightning-terminal/db"
8+
"github.com/lightninglabs/lightning-terminal/db/migrationstreams"
99
"github.com/lightningnetwork/lnd/clock"
1010
"github.com/lightningnetwork/lnd/sqldb/v2"
1111
)
1212

1313
// NewTestDB is a helper function that creates an BBolt database for testing.
1414
func NewTestDB(t *testing.T, clock clock.Clock) FirewallDBs {
1515
return createStore(
16-
t, sqldb.NewTestSqliteDB(t, db.LitdMigrationStreams).BaseDB,
16+
t,
17+
sqldb.NewTestSqliteDB(t, migrationstreams.LitdMigrationStreams).BaseDB,
1718
clock,
1819
)
1920
}
@@ -23,7 +24,9 @@ func NewTestDB(t *testing.T, clock clock.Clock) FirewallDBs {
2324
func NewTestDBFromPath(t *testing.T, dbPath string,
2425
clock clock.Clock) FirewallDBs {
2526

26-
tDb := sqldb.NewTestSqliteDBFromPath(t, dbPath, db.LitdMigrationStreams)
27+
tDb := sqldb.NewTestSqliteDBFromPath(
28+
t, dbPath, migrationstreams.LitdMigrationStreams,
29+
)
2730

2831
return createStore(t, tDb.BaseDB, clock)
2932
}

log.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/lightninglabs/lightning-terminal/accounts"
99
"github.com/lightninglabs/lightning-terminal/autopilotserver"
1010
"github.com/lightninglabs/lightning-terminal/db"
11+
"github.com/lightninglabs/lightning-terminal/db/migrationstreams"
1112
"github.com/lightninglabs/lightning-terminal/firewall"
1213
"github.com/lightninglabs/lightning-terminal/firewalldb"
1314
mid "github.com/lightninglabs/lightning-terminal/rpcmiddleware"
@@ -91,6 +92,10 @@ func SetupLoggers(root *build.SubLoggerManager, intercept signal.Interceptor) {
9192
root, subservers.Subsystem, intercept, subservers.UseLogger,
9293
)
9394
lnd.AddSubLogger(root, db.Subsystem, intercept, db.UseLogger)
95+
lnd.AddSubLogger(
96+
root, migrationstreams.Subsystem, intercept,
97+
migrationstreams.UseLogger,
98+
)
9499

95100
// Add daemon loggers to lnd's root logger.
96101
faraday.SetupLoggers(root, intercept)

0 commit comments

Comments
 (0)