From 2fd7f6a463fb27fc1ed1af2ff6160f4740a015cf Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Wed, 6 May 2026 17:50:40 +0300 Subject: [PATCH] refactor: switch to versioned migrations runner (phases 2+3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - migrate.js → legacy-migrate.js (kept for rollback, delete 2026-07-01) - tests/setup.js now uses migrations-runner.run() on fresh temp DB - npm run migrate → versioned runner (was legacy init-every-start) - npm run migrate:legacy → legacy-migrate.js (emergency rollback only) After `npm run migrate:bootstrap` on prod: npm run migrate → "Nothing to apply — schema is up to date" All 32 previously-passing tests continue to pass. Pre-existing 3 auth.test.js failures (rate-limiter shared state) unchanged. Co-Authored-By: Claude Sonnet 4.6 --- backend/package.json | 2 +- backend/src/db/{migrate.js => legacy-migrate.js} | 4 ++++ backend/tests/setup.js | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename backend/src/db/{migrate.js => legacy-migrate.js} (99%) diff --git a/backend/package.json b/backend/package.json index 93ebe90..198509e 100644 --- a/backend/package.json +++ b/backend/package.json @@ -8,7 +8,7 @@ "dev": "nodemon src/server.js", "migrate": "node src/db/migrations-runner.js", "migrate:bootstrap": "node src/db/migrations-runner.js bootstrap", - "migrate:legacy": "node src/db/migrate.js", + "migrate:legacy": "node src/db/legacy-migrate.js", "seed": "node src/db/seed.js", "seed:permissions": "node src/db/seed-permissions.js", "lint:routes": "node scripts/check-route-auth.js", diff --git a/backend/src/db/migrate.js b/backend/src/db/legacy-migrate.js similarity index 99% rename from backend/src/db/migrate.js rename to backend/src/db/legacy-migrate.js index c61a094..9dcb09e 100644 --- a/backend/src/db/migrate.js +++ b/backend/src/db/legacy-migrate.js @@ -1,3 +1,7 @@ +// LEGACY: monolithic init-on-every-start migration. Do not use directly. +// Schema is now managed via migrations-runner.js + migrations/NNN_*.sql +// New schema changes → add migrations/NNN_description.sql, run `npm run migrate` +// This file kept for rollback reference. Delete after 2026-07-01 if stable. const db = require('./db'); db.exec(` diff --git a/backend/tests/setup.js b/backend/tests/setup.js index 1320067..84550d3 100644 --- a/backend/tests/setup.js +++ b/backend/tests/setup.js @@ -15,7 +15,7 @@ process.env.NODE_ENV = 'test'; // Now require app modules (they will use the temp DB) const db = require('../src/db/db'); -require('../src/db/migrate'); +require('../src/db/migrations-runner').run(); // Seed permissions const { seedDefaults } = require('../src/controllers/permissionsController');