From bae70e9154bc83499db3ca2dac34c2a79d1bb5c0 Mon Sep 17 00:00:00 2001 From: ScreenTinker Date: Tue, 9 Jun 2026 10:02:38 -0500 Subject: [PATCH] fix(db): count only ADD COLUMN as new migrations in boot log (#37 follow-up) The boot summary counted any non-throwing statement, so UPDATE/index migrations (which always succeed) made a healthy DB report 'applied N new column migration(s)' every boot. Count only a successful ALTER ... ADD COLUMN (genuinely new), so the line appears only when a column was actually added. --- server/db/database.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/db/database.js b/server/db/database.js index a1cdba3..5169016 100644 --- a/server/db/database.js +++ b/server/db/database.js @@ -185,9 +185,14 @@ const migrations = [ // a swallowed failure left users.must_change_password absent -> total auth lockout). let _migApplied = 0; for (const sql of migrations) { + // Only a successful ADD COLUMN means a genuinely-new column (it would throw + // "duplicate column" if it already existed). UPDATE/index statements always + // succeed, so they must NOT count toward "new migrations applied" or the boot + // would falsely report work on every healthy start. + const isAddColumn = /alter\s+table\s+\S+\s+add\s+column/i.test(sql); try { db.exec(sql); - _migApplied++; + if (isAddColumn) _migApplied++; } catch (e) { if (!/duplicate column name|already exists/i.test(e.message)) { console.error(`[migrate] FAILED: ${sql}\n -> ${e.message}`);