fix: make migrations idempotent, pass checkColumnExists to all migrations
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
import logger from '../utils/logger.js';
|
import logger from '../utils/logger.js';
|
||||||
import { checkColumnExists } from './runner.js';
|
|
||||||
|
|
||||||
export default async function migration008(db) {
|
export default async function migration008(db, checkColumnExists) {
|
||||||
if (await checkColumnExists(db, 'users', 'language')) {
|
if (await checkColumnExists('users', 'language')) {
|
||||||
logger.info('Migration 008: language column already exists, skipping');
|
logger.info('Migration 008: language column already exists, skipping');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import logger from '../utils/logger.js';
|
import logger from '../utils/logger.js';
|
||||||
import { checkColumnExists } from './runner.js';
|
|
||||||
|
|
||||||
export default async function migration009(db) {
|
export default async function migration009(db, checkColumnExists) {
|
||||||
if (await checkColumnExists(db, 'users', 'language_set')) {
|
if (await checkColumnExists('users', 'language_set')) {
|
||||||
logger.info('Migration 009: language_set column already exists, skipping');
|
logger.info('Migration 009: language_set column already exists, skipping');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,11 +48,7 @@ export async function runMigrations() {
|
|||||||
|
|
||||||
for (let i = currentVersion; i < migrations.length; i++) {
|
for (let i = currentVersion; i < migrations.length; i++) {
|
||||||
logger.info({ migration: i + 1, total: migrations.length }, 'Running migration');
|
logger.info({ migration: i + 1, total: migrations.length }, 'Running migration');
|
||||||
if (i === 1) {
|
await migrations[i](db, checkColumnExists);
|
||||||
await migrations[i](db, checkColumnExists);
|
|
||||||
} else {
|
|
||||||
await migrations[i](db);
|
|
||||||
}
|
|
||||||
await db.runAsync(
|
await db.runAsync(
|
||||||
`INSERT OR REPLACE INTO _meta (key, value) VALUES ('schema_version', ?)`,
|
`INSERT OR REPLACE INTO _meta (key, value) VALUES ('schema_version', ?)`,
|
||||||
[String(i + 1)]
|
[String(i + 1)]
|
||||||
|
|||||||
Reference in New Issue
Block a user