From dbf7ad768ca64b59921fb128af48e2999b9b129f Mon Sep 17 00:00:00 2001 From: Mike Olund Date: Thu, 4 Jun 2026 17:27:15 -0700 Subject: [PATCH 1/2] NOBUG: Fix migrations broken by recent schema updates --- ...0.00.004a-populate-closed-rst-resources.js | 27 ++++++++++++++----- ...5.20T00.00.012-import-standard-messages.js | 3 +++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/cms/database/migrations/2026.03.21T00.00.004a-populate-closed-rst-resources.js b/src/cms/database/migrations/2026.03.21T00.00.004a-populate-closed-rst-resources.js index e74098bf8..bb2639101 100644 --- a/src/cms/database/migrations/2026.03.21T00.00.004a-populate-closed-rst-resources.js +++ b/src/cms/database/migrations/2026.03.21T00.00.004a-populate-closed-rst-resources.js @@ -229,12 +229,27 @@ function titleCase(str) { module.exports = { async up(knex) { if (await knex.schema.hasTable("recreation_resources")) { - await knex.raw( - "DELETE FROM public_advisory_audits WHERE submitted_by = 'Imported'", - ); - await knex.raw( - "DELETE FROM public_advisories WHERE submitted_by = 'Imported'", - ); + if ( + await knex.schema.hasColumn( + "public_advisory_audits", + "submitted_by_name", + ) + ) { + await knex.raw( + "DELETE FROM public_advisory_audits WHERE submitted_by_name = 'Imported'", + ); + + await loadData(); + } + + if ( + await knex.schema.hasColumn("public_advisories", "submitted_by_name") + ) { + await knex.raw( + "DELETE FROM public_advisories WHERE submitted_by_name = 'Imported'", + ); + } + await loadData(); } }, diff --git a/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js b/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js index a778aad0a..d5779897f 100644 --- a/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js +++ b/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js @@ -110,6 +110,8 @@ const messages = [ module.exports = { async up(knex) { if (await knex.schema.hasTable("standard_messages")) { + await knex.raw("DELETE FROM standard_messages where precedence >= 19"); // delete existing messages to prevent duplicates on re-run + // create a map of event type names (eventType field) to documentIds const eventTypes = await knex("event_types").select( "document_id", @@ -140,6 +142,7 @@ module.exports = { precedence, description, eventType: eventTypeDocId, + isActive: true, }, }); } From 0a0a9c849e7a90022b4f5157170abff0c371a4dd Mon Sep 17 00:00:00 2001 From: Mike Olund Date: Thu, 4 Jun 2026 20:22:40 -0700 Subject: [PATCH 2/2] Use a different way to check --- .../2026.05.20T00.00.012-import-standard-messages.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js b/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js index d5779897f..82ed3063f 100644 --- a/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js +++ b/src/cms/database/migrations/2026.05.20T00.00.012-import-standard-messages.js @@ -110,7 +110,16 @@ const messages = [ module.exports = { async up(knex) { if (await knex.schema.hasTable("standard_messages")) { - await knex.raw("DELETE FROM standard_messages where precedence >= 19"); // delete existing messages to prevent duplicates on re-run + // If precedence 30 already exists, this migration has already imported all rows. + const precedence30Exists = await knex("standard_messages") + .where({ precedence: 30 }) + .first(); + if (precedence30Exists) { + strapi.log.info( + "Standard messages already imported (precedence 30 exists). Skipping migration.", + ); + return; + } // create a map of event type names (eventType field) to documentIds const eventTypes = await knex("event_types").select(