Disable morph logging during TestMain (#30948)
* rm "No TEST_DATABASE... override" log message Let's only log if this value is actually overridden. * rm "(Created|Dropped) temporary database" message * only log "Pinging SQL" on subsequent attempts * disable morph logging from TestMain * Fix style issues in store test files - Add missing parameter to migrate() function calls in tests - Remove unused log function in settings.go - Fix formatting with go fmt 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * within sqlstore, use "enable" vs "disable" for clarity * remove trailing newline from morph logs --------- Co-authored-by: Claude <noreply@anthropic.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
92db356484
Коммит
31a8047973
@@ -6,6 +6,7 @@ package sqlstore
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"path"
|
||||
"sort"
|
||||
@@ -60,7 +61,7 @@ func NewMigrator(settings model.SqlSettings, logger mlog.LoggerIFace, dryRun boo
|
||||
return nil, fmt.Errorf("error while checking DB collation: %w", err)
|
||||
}
|
||||
|
||||
engine, err := ss.initMorph(dryRun)
|
||||
engine, err := ss.initMorph(dryRun, true)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to initialize morph: %w", err)
|
||||
}
|
||||
@@ -95,7 +96,7 @@ func (m *Migrator) GetFileName(plan *models.Plan) (string, error) {
|
||||
return fmt.Sprintf("migration_plan_%d_%d", from, to), nil
|
||||
}
|
||||
|
||||
func (ss *SqlStore) initMorph(dryRun bool) (*morph.Morph, error) {
|
||||
func (ss *SqlStore) initMorph(dryRun, enableLogging bool) (*morph.Morph, error) {
|
||||
assets := db.Assets()
|
||||
|
||||
assetsList, err := assets.ReadDir(path.Join("migrations", ss.DriverName()))
|
||||
@@ -149,8 +150,15 @@ func (ss *SqlStore) initMorph(dryRun bool) (*morph.Morph, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var logWriter io.Writer
|
||||
if enableLogging {
|
||||
logWriter = &morphWriter{}
|
||||
} else {
|
||||
logWriter = io.Discard
|
||||
}
|
||||
|
||||
opts := []morph.EngineOption{
|
||||
morph.WithLogger(log.New(&morphWriter{}, "", log.Lshortfile)),
|
||||
morph.WithLogger(log.New(logWriter, "", log.Lshortfile)),
|
||||
morph.WithLock("mm-lock-key"),
|
||||
morph.SetStatementTimeoutInSeconds(*ss.settings.MigrationsStatementTimeoutSeconds),
|
||||
morph.SetDryRun(dryRun),
|
||||
@@ -164,8 +172,8 @@ func (ss *SqlStore) initMorph(dryRun bool) (*morph.Morph, error) {
|
||||
return engine, nil
|
||||
}
|
||||
|
||||
func (ss *SqlStore) migrate(direction migrationDirection, dryRun bool) error {
|
||||
engine, err := ss.initMorph(dryRun)
|
||||
func (ss *SqlStore) migrate(direction migrationDirection, dryRun, enableMorphLogging bool) error {
|
||||
engine, err := ss.initMorph(dryRun, enableMorphLogging)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func TestUpAndDownMigrations(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
defer store.Close()
|
||||
|
||||
err = store.migrate(migrationsDirectionDown, false)
|
||||
err = store.migrate(migrationsDirectionDown, false, true)
|
||||
assert.NoError(t, err, "downing migrations should not error")
|
||||
})
|
||||
}
|
||||
|
||||
@@ -147,6 +147,7 @@ type SqlStore struct {
|
||||
isBinaryParam bool
|
||||
pgDefaultTextSearchConfig string
|
||||
skipMigrations bool
|
||||
disableMorphLogging bool
|
||||
|
||||
quitMonitor chan struct{}
|
||||
wgMonitor *sync.WaitGroup
|
||||
@@ -159,6 +160,13 @@ func SkipMigrations() Option {
|
||||
}
|
||||
}
|
||||
|
||||
func DisableMorphLogging() Option {
|
||||
return func(s *SqlStore) error {
|
||||
s.disableMorphLogging = true
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func New(settings model.SqlSettings, logger mlog.LoggerIFace, metrics einterfaces.MetricsInterface, options ...Option) (*SqlStore, error) {
|
||||
store := &SqlStore{
|
||||
rrCounter: 0,
|
||||
@@ -200,7 +208,7 @@ func New(settings model.SqlSettings, logger mlog.LoggerIFace, metrics einterface
|
||||
}
|
||||
|
||||
if !store.skipMigrations {
|
||||
err = store.migrate(migrationsDirectionUp, false)
|
||||
err = store.migrate(migrationsDirectionUp, false, !store.disableMorphLogging)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to apply database migrations")
|
||||
}
|
||||
@@ -642,7 +650,6 @@ func (ss *SqlStore) DoesTableExist(tableName string) bool {
|
||||
`SELECT count(relname) FROM pg_class WHERE relname=$1`,
|
||||
strings.ToLower(tableName),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
mlog.Fatal("Failed to check if table exists", mlog.Err(err))
|
||||
}
|
||||
@@ -661,7 +668,6 @@ func (ss *SqlStore) DoesTableExist(tableName string) bool {
|
||||
`,
|
||||
tableName,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
mlog.Fatal("Failed to check if table exists", mlog.Err(err))
|
||||
}
|
||||
@@ -684,7 +690,6 @@ func (ss *SqlStore) DoesColumnExist(tableName string, columnName string) bool {
|
||||
strings.ToLower(tableName),
|
||||
strings.ToLower(columnName),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
if err.Error() == "pq: relation \""+strings.ToLower(tableName)+"\" does not exist" {
|
||||
return false
|
||||
@@ -708,7 +713,6 @@ func (ss *SqlStore) DoesColumnExist(tableName string, columnName string) bool {
|
||||
tableName,
|
||||
columnName,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
mlog.Fatal("Failed to check if column exists", mlog.Err(err))
|
||||
}
|
||||
@@ -730,7 +734,6 @@ func (ss *SqlStore) DoesTriggerExist(triggerName string) bool {
|
||||
WHERE
|
||||
tgname = $1
|
||||
`, triggerName)
|
||||
|
||||
if err != nil {
|
||||
mlog.Fatal("Failed to check if trigger exists", mlog.Err(err))
|
||||
}
|
||||
@@ -747,7 +750,6 @@ func (ss *SqlStore) DoesTriggerExist(triggerName string) bool {
|
||||
trigger_schema = DATABASE()
|
||||
AND trigger_name = ?
|
||||
`, triggerName)
|
||||
|
||||
if err != nil {
|
||||
mlog.Fatal("Failed to check if trigger exists", mlog.Err(err))
|
||||
}
|
||||
|
||||
@@ -781,7 +781,7 @@ func TestReplicaLagQuery(t *testing.T) {
|
||||
|
||||
require.NoError(t, store.initConnection())
|
||||
store.stores.post = newSqlPostStore(store, mockMetrics)
|
||||
err = store.migrate(migrationsDirectionUp, false)
|
||||
err = store.migrate(migrationsDirectionUp, false, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
defer store.Close()
|
||||
@@ -839,8 +839,10 @@ func TestInvalidReplicaLagDataSource(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
var errDriverMismatch = errors.New("database drivers mismatch")
|
||||
var errDriverUnsupported = errors.New("database driver not supported")
|
||||
var (
|
||||
errDriverMismatch = errors.New("database drivers mismatch")
|
||||
errDriverUnsupported = errors.New("database driver not supported")
|
||||
)
|
||||
|
||||
func makeSqlSettings(driver string) (*model.SqlSettings, error) {
|
||||
// When running under CI, only one database engine container is launched
|
||||
|
||||
@@ -156,7 +156,7 @@ func wrapBinaryParamStringMap(ok bool, props model.StringMap) model.StringMap {
|
||||
type morphWriter struct{}
|
||||
|
||||
func (l *morphWriter) Write(in []byte) (int, error) {
|
||||
mlog.Debug(string(in))
|
||||
mlog.Debug(strings.TrimSpace(string(in)))
|
||||
return len(in), nil
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user