From ed5ddacc88bc574928ac10e88f89bb1b10791937 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Fri, 2 May 2025 22:00:35 -0400 Subject: [PATCH 1/8] fix(db-postgres): v2-v3 migration errors with relation already exists --- .../v2-v3/groupUpSQLStatements.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts index 0a9bfe2fea7..6952eb0433b 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts @@ -7,17 +7,22 @@ export type Groups = | 'notNull' /** - * Convert an "ADD COLUMN" statement to an "ALTER COLUMN" statement - * example: ALTER TABLE "pages_blocks_my_block" ADD COLUMN "person_id" integer NOT NULL; - * to: ALTER TABLE "pages_blocks_my_block" ALTER COLUMN "person_id" SET NOT NULL; - * @param sql + * Convert an "ADD COLUMN" statement to an "ALTER COLUMN" statement. + * Works with or without a schema name. + * + * Examples: + * 'ALTER TABLE "pages_blocks_my_block" ADD COLUMN "person_id" integer NOT NULL;' + * => 'ALTER TABLE "pages_blocks_my_block" ALTER COLUMN "person_id" SET NOT NULL;' + * + * 'ALTER TABLE "public"."pages_blocks_my_block" ADD COLUMN "person_id" integer NOT NULL;' + * => 'ALTER TABLE "public"."pages_blocks_my_block" ALTER COLUMN "person_id" SET NOT NULL;' */ function convertAddColumnToAlterColumn(sql) { // Regular expression to match the ADD COLUMN statement with its constraints - const regex = /ALTER TABLE ("[^"]+")\.(".*?") ADD COLUMN ("[^"]+") [\w\s]+ NOT NULL;/ + const regex = /ALTER TABLE ((?:"[^"]+"\.)?"[^"]+") ADD COLUMN ("[^"]+") [^;]*?NOT NULL;/i // Replace the matched part with "ALTER COLUMN ... SET NOT NULL;" - return sql.replace(regex, 'ALTER TABLE $1.$2 ALTER COLUMN $3 SET NOT NULL;') + return sql.replace(regex, 'ALTER TABLE $1 ALTER COLUMN $2 SET NOT NULL;') } export const groupUpSQLStatements = (list: string[]): Record => { From 99007f90e5491125563cff8529a0cb59b4431893 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Sat, 3 May 2025 06:44:01 -0400 Subject: [PATCH 2/8] fix(db-postgres): v2-v3 migration errors from camelCase column change --- .../v2-v3/groupUpSQLStatements.ts | 41 ++++++++++++++----- .../predefinedMigrations/v2-v3/index.ts | 12 ++++++ 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts index 6952eb0433b..aab4f007453 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts @@ -5,6 +5,7 @@ export type Groups = | 'dropConstraint' | 'dropTable' | 'notNull' + | 'renameColumn' /** * Convert an "ADD COLUMN" statement to an "ALTER COLUMN" statement. @@ -27,28 +28,46 @@ function convertAddColumnToAlterColumn(sql) { export const groupUpSQLStatements = (list: string[]): Record => { const groups = { + /** + * example: ALTER TABLE "posts" ADD COLUMN "category_id" integer + */ addColumn: 'ADD COLUMN', - // example: ALTER TABLE "posts" ADD COLUMN "category_id" integer + /** + * example: + * DO $$ BEGIN + * ALTER TABLE "pages_blocks_my_block" ADD CONSTRAINT "pages_blocks_my_block_person_id_users_id_fk" FOREIGN KEY ("person_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; + * EXCEPTION + * WHEN duplicate_object THEN null; + * END $$; + */ addConstraint: 'ADD CONSTRAINT', - //example: - // DO $$ BEGIN - // ALTER TABLE "pages_blocks_my_block" ADD CONSTRAINT "pages_blocks_my_block_person_id_users_id_fk" FOREIGN KEY ("person_id") REFERENCES "users"("id") ON DELETE cascade ON UPDATE no action; - // EXCEPTION - // WHEN duplicate_object THEN null; - // END $$; + /** + * example: ALTER TABLE "_posts_v_rels" DROP COLUMN IF EXISTS "posts_id"; + */ dropColumn: 'DROP COLUMN', - // example: ALTER TABLE "_posts_v_rels" DROP COLUMN IF EXISTS "posts_id"; + /** + * example: ALTER TABLE "_posts_v_rels" DROP CONSTRAINT "_posts_v_rels_posts_fk"; + */ dropConstraint: 'DROP CONSTRAINT', - // example: ALTER TABLE "_posts_v_rels" DROP CONSTRAINT "_posts_v_rels_posts_fk"; + /** + * example: DROP TABLE "pages_rels"; + */ dropTable: 'DROP TABLE', - // example: DROP TABLE "pages_rels"; + /** + * example: ALTER TABLE "pages_blocks_my_block" ALTER COLUMN "person_id" SET NOT NULL; + */ notNull: 'NOT NULL', - // example: ALTER TABLE "pages_blocks_my_block" ALTER COLUMN "person_id" SET NOT NULL; + + /** + * columns were renamed from camelCase to snake_case + * example: ALTER TABLE "forms" RENAME COLUMN "confirmationType" TO "confirmation_type"; + */ + renameColumn: 'RENAME COLUMN', } const result = Object.keys(groups).reduce((result, group: Groups) => { diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts index 06fc16a9ba4..dd8ea715576 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts @@ -82,8 +82,20 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { const sqlUpStatements = groupUpSQLStatements(generatedSQL) + const renameColumnsStatement = sqlUpStatements.renameColumn.join('\n') + + // RENAME COLUMNS + if (debug) { + payload.logger.info('RENAMING COLUMNS') + payload.logger.info(renameColumnsStatement) + } + + await db.execute(sql.raw(renameColumnsStatement)) + const addColumnsStatement = sqlUpStatements.addColumn.join('\n') + await db.execute(sql.raw(addColumnsStatement)) + if (debug) { payload.logger.info('CREATING NEW RELATIONSHIP COLUMNS') payload.logger.info(addColumnsStatement) From b231a901b19312807605fa591cce749169979fdb Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Sat, 3 May 2025 06:44:43 -0400 Subject: [PATCH 3/8] fix(db-postgres): v2-v3 migration errors from DROP CONSTRAINT --- .../predefinedMigrations/v2-v3/groupUpSQLStatements.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts index aab4f007453..84897e0bb1c 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts @@ -88,7 +88,11 @@ export const groupUpSQLStatements = (list: string[]): Record = return true } if (line.includes(value)) { - result[key].push(line) + let statement = line + if (key === 'dropConstraint') { + statement = line.replace('" DROP CONSTRAINT "', '" DROP CONSTRAINT IF EXISTS "') + } + result[key].push(statement) return true } }) From 753153bda34630c3ba936cc4676972452c3a468c Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Mon, 5 May 2025 11:18:27 -0400 Subject: [PATCH 4/8] fix(db-postgres): v2-v3 migration does not add payload_locked_documents tables --- .../v2-v3/groupUpSQLStatements.ts | 11 +++++++++ .../predefinedMigrations/v2-v3/index.ts | 24 +++++++++++-------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts index 84897e0bb1c..d342c7850d7 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts @@ -1,6 +1,7 @@ export type Groups = | 'addColumn' | 'addConstraint' + | 'createTable' | 'dropColumn' | 'dropConstraint' | 'dropTable' @@ -43,6 +44,16 @@ export const groupUpSQLStatements = (list: string[]): Record = */ addConstraint: 'ADD CONSTRAINT', + /** + * example: CREATE TABLE IF NOT EXISTS "payload_locked_documents" ( + * "id" serial PRIMARY KEY NOT NULL, + * "global_slug" varchar, + * "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + * "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + * ); + */ + createTable: 'CREATE TABLE', + /** * example: ALTER TABLE "_posts_v_rels" DROP COLUMN IF EXISTS "posts_id"; */ diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts index dd8ea715576..7358b8bb023 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts @@ -41,16 +41,7 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { // get the drizzle migrateUpSQL from drizzle using the last schema const { generateDrizzleJson, generateMigration, upSnapshot } = adapter.requireDrizzleKit() - - const toSnapshot: Record = {} - - for (const key of Object.keys(adapter.schema).filter( - (key) => !key.startsWith('payload_locked_documents'), - )) { - toSnapshot[key] = adapter.schema[key] - } - - const drizzleJsonAfter = generateDrizzleJson(toSnapshot) as DrizzleSnapshotJSON + const drizzleJsonAfter = generateDrizzleJson(adapter.schema) as DrizzleSnapshotJSON // Get the previous migration snapshot const previousSnapshot = fs @@ -82,6 +73,16 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { const sqlUpStatements = groupUpSQLStatements(generatedSQL) + const createTableStatement = sqlUpStatements.createTable.join('\n') + + // CREATE TABLES + if (debug) { + payload.logger.info('CREATING TABLES') + payload.logger.info(createTableStatement) + } + + await db.execute(sql.raw(createTableStatement)) + const renameColumnsStatement = sqlUpStatements.renameColumn.join('\n') // RENAME COLUMNS @@ -104,6 +105,9 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { await db.execute(sql.raw(addColumnsStatement)) for (const collection of payload.config.collections) { + if (collection.slug === 'payload-locked-documents') { + continue + } const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug)) const pathsToQuery: PathsToQuery = new Set() From 294c1ac1ed32e308bf77a385be7bfbab2f60f20b Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Mon, 5 May 2025 12:00:33 -0400 Subject: [PATCH 5/8] chore: fix drizzle build --- .../drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts index 6c486b946d8..da7ceb9ede0 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts @@ -72,6 +72,8 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { const sqlUpStatements = groupUpSQLStatements(generatedSQL) + const db = await getTransaction(adapter, req) + const createTableStatement = sqlUpStatements.createTable.join('\n') // CREATE TABLES @@ -101,8 +103,6 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { payload.logger.info(addColumnsStatement) } - const db = await getTransaction(adapter, req) - await db.execute(sql.raw(addColumnsStatement)) for (const collection of payload.config.collections) { From 5c7e571cbf5799bf33fd2bab907400c2312afb22 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 7 May 2025 16:09:16 -0700 Subject: [PATCH 6/8] fix(db-postgres): many more schema changes covered in v2-v3 migration --- .../v2-v3/groupUpSQLStatements.ts | 47 ++++++ .../predefinedMigrations/v2-v3/index.ts | 154 ++++++++++++------ 2 files changed, 153 insertions(+), 48 deletions(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts index 0a9bfe2fea7..22065462b4b 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts @@ -1,10 +1,18 @@ export type Groups = | 'addColumn' | 'addConstraint' + | 'alterType' + | 'createIndex' + | 'createTable' + | 'createType' + | 'disableRowSecurity' | 'dropColumn' | 'dropConstraint' + | 'dropIndex' | 'dropTable' + | 'dropType' | 'notNull' + | 'setDefault' /** * Convert an "ADD COLUMN" statement to an "ALTER COLUMN" statement @@ -44,6 +52,35 @@ export const groupUpSQLStatements = (list: string[]): Record = notNull: 'NOT NULL', // example: ALTER TABLE "pages_blocks_my_block" ALTER COLUMN "person_id" SET NOT NULL; + + createType: 'CREATE TYPE', + // example: CREATE TYPE "public"."enum__pages_v_published_locale" AS ENUM('en', 'es'); + + alterType: 'ALTER TYPE', + // example: ALTER TYPE "public"."enum_pages_blocks_cta" ADD VALUE 'copy'; + + createTable: 'CREATE TABLE', + // example: CREATE TABLE IF NOT EXISTS "payload_locked_documents" ( + // "id" serial PRIMARY KEY NOT NULL, + // "global_slug" varchar, + // "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + // "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + // ); + + disableRowSecurity: 'DISABLE ROW LEVEL SECURITY;', + // example: ALTER TABLE "categories_rels" DISABLE ROW LEVEL SECURITY; + + dropIndex: 'DROP INDEX IF EXISTS', + // example: DROP INDEX IF EXISTS "pages_title_idx"; + + setDefault: 'SET DEFAULT', + // example: ALTER TABLE "pages" ALTER COLUMN "_status" SET DEFAULT 'draft'; + + createIndex: 'INDEX IF NOT EXISTS', + // example: CREATE INDEX IF NOT EXISTS "payload_locked_documents_global_slug_idx" ON "payload_locked_documents" USING btree ("global_slug"); + + dropType: 'DROP TYPE', + // example: DROP TYPE "public"."enum__pages_v_published_locale"; } const result = Object.keys(groups).reduce((result, group: Groups) => { @@ -51,7 +88,17 @@ export const groupUpSQLStatements = (list: string[]): Record = return result }, {}) as Record + // push multi-line changes to a single grouping + let isCreateTable = false + for (const line of list) { + if (isCreateTable) { + result.createTable.push(line) + if (line.includes(');')) { + isCreateTable = false + } + continue + } Object.entries(groups).some(([key, value]) => { if (line.endsWith('NOT NULL;')) { // split up the ADD COLUMN and ALTER COLUMN NOT NULL statements diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts index 63fd4111fda..84d01db1c39 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/index.ts @@ -20,6 +20,17 @@ type Args = { req?: Partial } +const runStatementGroup = async ({ adapter, db, debug, statements }) => { + const addColumnsStatement = statements.join('\n') + + if (debug) { + adapter.payload.logger.info(debug) + adapter.payload.logger.info(addColumnsStatement) + } + + await db.execute(sql.raw(addColumnsStatement)) +} + /** * Moves upload and relationship columns from the join table and into the tables while moving data * This is done in the following order: @@ -81,16 +92,57 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { const sqlUpStatements = groupUpSQLStatements(generatedSQL) - const addColumnsStatement = sqlUpStatements.addColumn.join('\n') - - if (debug) { - payload.logger.info('CREATING NEW RELATIONSHIP COLUMNS') - payload.logger.info(addColumnsStatement) - } - const db = await getTransaction(adapter, req) - await db.execute(sql.raw(addColumnsStatement)) + await runStatementGroup({ + adapter, + db, + debug: debug ? 'CREATING TYPES' : null, + statements: sqlUpStatements.createType, + }) + + await runStatementGroup({ + adapter, + db, + debug: debug ? 'ALTERING TYPES' : null, + statements: sqlUpStatements.alterType, + }) + + await runStatementGroup({ + adapter, + db, + debug: debug ? 'CREATING TABLES' : null, + statements: sqlUpStatements.createTable, + }) + + await runStatementGroup({ + adapter, + db, + debug: debug ? 'DISABLING ROW LEVEL SECURITY' : null, + statements: sqlUpStatements.disableRowSecurity, + }) + + await runStatementGroup({ + adapter, + db, + debug: debug ? 'CREATING NEW RELATIONSHIP COLUMNS' : null, + statements: sqlUpStatements.addColumn, + }) + + // SET DEFAULTS + await runStatementGroup({ + adapter, + db, + debug: debug ? 'SETTING DEFAULTS' : null, + statements: sqlUpStatements.setDefault, + }) + + await runStatementGroup({ + adapter, + db, + debug: debug ? 'CREATING INDEXES' : null, + statements: sqlUpStatements.createIndex, + }) for (const collection of payload.config.collections) { const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug)) @@ -238,52 +290,58 @@ export const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => { } // ADD CONSTRAINT - const addConstraintsStatement = sqlUpStatements.addConstraint.join('\n') - - if (debug) { - payload.logger.info('ADDING CONSTRAINTS') - payload.logger.info(addConstraintsStatement) - } - - await db.execute(sql.raw(addConstraintsStatement)) + await runStatementGroup({ + adapter, + db, + debug: debug ? 'ADDING CONSTRAINTS' : null, + statements: sqlUpStatements.addConstraint, + }) // NOT NULL - const notNullStatements = sqlUpStatements.notNull.join('\n') - - if (debug) { - payload.logger.info('NOT NULL CONSTRAINTS') - payload.logger.info(notNullStatements) - } - - await db.execute(sql.raw(notNullStatements)) + await runStatementGroup({ + adapter, + db, + debug: debug ? 'NOT NULL CONSTRAINTS' : null, + statements: sqlUpStatements.notNull, + }) // DROP TABLE - const dropTablesStatement = sqlUpStatements.dropTable.join('\n') - - if (debug) { - payload.logger.info('DROPPING TABLES') - payload.logger.info(dropTablesStatement) - } - - await db.execute(sql.raw(dropTablesStatement)) + await runStatementGroup({ + adapter, + db, + debug: debug ? 'DROPPING TABLES' : null, + statements: sqlUpStatements.dropTable, + }) + + // DROP INDEX + await runStatementGroup({ + adapter, + db, + debug: debug ? 'DROPPING INDEXES' : null, + statements: sqlUpStatements.dropIndex, + }) // DROP CONSTRAINT - const dropConstraintsStatement = sqlUpStatements.dropConstraint.join('\n') - - if (debug) { - payload.logger.info('DROPPING CONSTRAINTS') - payload.logger.info(dropConstraintsStatement) - } - - await db.execute(sql.raw(dropConstraintsStatement)) + await runStatementGroup({ + adapter, + db, + debug: debug ? 'DROPPING CONSTRAINTS' : null, + statements: sqlUpStatements.dropConstraint, + }) // DROP COLUMN - const dropColumnsStatement = sqlUpStatements.dropColumn.join('\n') - - if (debug) { - payload.logger.info('DROPPING COLUMNS') - payload.logger.info(dropColumnsStatement) - } - - await db.execute(sql.raw(dropColumnsStatement)) + await runStatementGroup({ + adapter, + db, + debug: debug ? 'DROPPING COLUMNS' : null, + statements: sqlUpStatements.dropColumn, + }) + + // DROP TYPES + await runStatementGroup({ + adapter, + db, + debug: debug ? 'DROPPING TYPES' : null, + statements: sqlUpStatements.dropType, + }) } From 78d3ba48b827db2399d78253d581963a73cefff2 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 7 May 2025 19:05:10 -0700 Subject: [PATCH 7/8] chore: v2-v3 migrate use transaction for reads --- .../predefinedMigrations/v2-v3/migrateRelationships.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts index 7295ac95fc0..3ba98d164eb 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts @@ -56,7 +56,7 @@ export const migrateRelationships = async ({ ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500}; ` - paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`)) + paginationResult = await db.execute(sql.raw(`${paginationStatement}`)) if (paginationResult.rows.length === 0) { return @@ -72,7 +72,7 @@ export const migrateRelationships = async ({ payload.logger.info(statement) } - const result = await adapter.drizzle.execute(sql.raw(`${statement}`)) + const result = await db.execute(sql.raw(`${statement}`)) const docsToResave: DocsToResave = {} From 741f3412b4ef155129ed305479bcbb7c4170c71e Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 7 May 2025 16:09:16 -0700 Subject: [PATCH 8/8] fix(db-postgres): many more schema changes covered in v2-v3 migration --- .../_template__of_JavaScriptTestRunnerJest.xml | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .idea/runConfigurations/_template__of_JavaScriptTestRunnerJest.xml diff --git a/.idea/runConfigurations/_template__of_JavaScriptTestRunnerJest.xml b/.idea/runConfigurations/_template__of_JavaScriptTestRunnerJest.xml deleted file mode 100644 index 7fe3092814f..00000000000 --- a/.idea/runConfigurations/_template__of_JavaScriptTestRunnerJest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file