diff --git a/packages/loot-core/migrations/1685375406832_transaction_filters.sql b/packages/loot-core/migrations/1688749527273_transaction_filters.sql similarity index 100% rename from packages/loot-core/migrations/1685375406832_transaction_filters.sql rename to packages/loot-core/migrations/1688749527273_transaction_filters.sql diff --git a/packages/loot-core/src/server/migrate/migrations.ts b/packages/loot-core/src/server/migrate/migrations.ts index f4b6b3993dd46edc0b56d64a43ed1647c6323cbf..07690ec37d5862d553176be1fac3349ad25594c5 100644 --- a/packages/loot-core/src/server/migrate/migrations.ts +++ b/packages/loot-core/src/server/migrate/migrations.ts @@ -40,6 +40,20 @@ export function getUpMigration(id, names) { } } +async function patchBadMigrations(db: Database) { + let badFiltersMigration = 1685375406832; + let newFiltersMigration = 1688749527273; + let appliedIds = await getAppliedMigrations(db); + if (appliedIds.includes(badFiltersMigration)) { + await sqlite.runQuery(db, 'DELETE FROM __migrations__ WHERE id = ?', [ + badFiltersMigration, + ]); + await sqlite.runQuery(db, 'INSERT INTO __migrations__ (id) VALUES (?)', [ + newFiltersMigration, + ]); + } +} + export async function getAppliedMigrations(db: Database): Promise<number[]> { const rows = await sqlite.runQuery<{ id: number }>( db, @@ -135,6 +149,7 @@ function checkDatabaseValidity( } export async function migrate(db: Database): Promise<string[]> { + await patchBadMigrations(db); let appliedIds = await getAppliedMigrations(db); let available = await getMigrationList(MIGRATIONS_DIR); diff --git a/upcoming-release-notes/1309.md b/upcoming-release-notes/1309.md new file mode 100644 index 0000000000000000000000000000000000000000..c8fc5f401008c0728b13d97af348d6e178cc7da1 --- /dev/null +++ b/upcoming-release-notes/1309.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [j-f1] +--- + +Handle upgrading from some recent `edge` versions to newer versions of Actual