From a3ab1c336bdeac799b1ddaaa422b03ffe5d0cf28 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Tue, 7 May 2024 12:21:39 -0400 Subject: [PATCH] chore: drizzle schema snapshot version migration --- packages/db-postgres/src/createMigration.ts | 15 +++++++++------ .../db-postgres/src/utilities/pushDevSchema.ts | 3 --- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/db-postgres/src/createMigration.ts b/packages/db-postgres/src/createMigration.ts index c3f864d0a6..e5567808fb 100644 --- a/packages/db-postgres/src/createMigration.ts +++ b/packages/db-postgres/src/createMigration.ts @@ -3,13 +3,10 @@ import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload' import type { CreateMigration } from 'payload/database' import fs from 'fs' -import { createRequire } from 'module' import prompts from 'prompts' import type { PostgresAdapter } from './types.js' -const require = createRequire(import.meta.url) - const migrationTemplate = ( upSQL?: string, downSQL?: string, @@ -62,7 +59,9 @@ export const createMigration: CreateMigration = async function createMigration( fs.mkdirSync(dir) } - const { generateDrizzleJson, generateMigration } = await import('drizzle-kit/payload') + const { generateDrizzleJson, generateMigration, upPgSnapshot } = await import( + 'drizzle-kit/payload' + ) const [yyymmdd, hhmmss] = new Date().toISOString().split('T') const formattedDate = yyymmdd.replace(/\D/g, '') @@ -86,11 +85,15 @@ export const createMigration: CreateMigration = async function createMigration( .reverse()?.[0] if (latestSnapshot) { - const latestSnapshotJSON = JSON.parse( + const latestSnapshotJSON: DrizzleSnapshotJSON = JSON.parse( fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'), ) as DrizzleSnapshotJSON - drizzleJsonBefore = latestSnapshotJSON + if (latestSnapshotJSON.version < drizzleJsonBefore.version) { + drizzleJsonBefore = upPgSnapshot(latestSnapshotJSON) + } else { + drizzleJsonBefore = latestSnapshotJSON + } } const drizzleJsonAfter = generateDrizzleJson(this.schema) diff --git a/packages/db-postgres/src/utilities/pushDevSchema.ts b/packages/db-postgres/src/utilities/pushDevSchema.ts index 81b49ccac9..6548c917c0 100644 --- a/packages/db-postgres/src/utilities/pushDevSchema.ts +++ b/packages/db-postgres/src/utilities/pushDevSchema.ts @@ -1,12 +1,9 @@ import { eq } from 'drizzle-orm' import { numeric, timestamp, varchar } from 'drizzle-orm/pg-core' -import { createRequire } from 'module' import prompts from 'prompts' import type { PostgresAdapter } from '../types.js' -const require = createRequire(import.meta.url) - /** * Pushes the development schema to the database using Drizzle. *