chore: name the database in every migration log line
An operator reported migrations being very slow and sent a log with three interleaved runs — and no way to tell one database migrated three times from three databases migrated once. Each line now carries its target: the SQLite file name, mysql:<database>, or baseline:memory for the in-memory pass that derives the schema for a FRESH MySQL database (that one is fast and is not a real database — in the report it sat between two slow runs and looked like a third). A pass also announces how many migrations it will apply, so a run that applies nothing is visibly distinct from one that does.
This commit is contained in:
@@ -139,6 +139,7 @@ func translateTextColumns(s string) string {
|
||||
// app-lifetime ctx with no per-query timeout) hold a connection for the whole
|
||||
// chain of remote-MySQL latency, so a handful of concurrent UI bursts drained
|
||||
// the pool and "after a while nothing updated" — grid, chat, live_status froze.
|
||||
//
|
||||
// 40 fits the actual deployment (max 5 ops on a server with max_connections=300 →
|
||||
// 40*5 = 200, leaving ~100 for phpMyAdmin/server overhead). This is the per-INSTANCE
|
||||
// pool, so keep max_connections >= pool*ops + headroom.
|
||||
@@ -200,7 +201,7 @@ func OpenMySQL(c MySQLConfig) (*sql.DB, error) {
|
||||
err = applyMySQLBaseline(conn)
|
||||
} else {
|
||||
// Existing database: apply only the migrations it's missing.
|
||||
err = migrate(conn, mysqlDDL, "")
|
||||
err = migrate(conn, mysqlDDL, "", "mysql:"+name)
|
||||
}
|
||||
if err != nil {
|
||||
_ = conn.Close()
|
||||
@@ -287,7 +288,11 @@ func applyMySQLBaseline(conn *sql.DB) error {
|
||||
return fmt.Errorf("open baseline sqlite: %w", err)
|
||||
}
|
||||
defer mem.Close()
|
||||
if err := migrate(mem, nil, ""); err != nil {
|
||||
// In-memory SQLite, used only to derive the final schema for a FRESH MySQL
|
||||
// database. Labelled so its (fast) migration lines are not mistaken for a
|
||||
// real database being migrated — in one operator's log this pass sat between
|
||||
// two slow MySQL runs and looked like a third database.
|
||||
if err := migrate(mem, nil, "", "baseline:memory"); err != nil {
|
||||
return fmt.Errorf("build baseline schema: %w", err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user