From 0aa8deb7b80980597487af1dedc751f227954519 Mon Sep 17 00:00:00 2001 From: Sasha <64744993+r1tsuu@users.noreply.github.com> Date: Wed, 13 Nov 2024 20:26:32 +0200 Subject: [PATCH] fix(db-postgres, db-vercel-postgres): relationship migration v2-v3 dirname --- packages/db-postgres/src/index.ts | 9 ++++- packages/db-vercel-postgres/src/index.ts | 9 ++++- .../drizzle/src/postgres/createMigration.ts | 6 +--- .../migrations/getPredefinedMigration.ts | 33 ++++++++++--------- packages/payload/src/database/types.ts | 2 ++ 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/packages/db-postgres/src/index.ts b/packages/db-postgres/src/index.ts index 22a0c582989..4048c0be416 100644 --- a/packages/db-postgres/src/index.ts +++ b/packages/db-postgres/src/index.ts @@ -50,12 +50,17 @@ import { requireDrizzleKit, } from '@payloadcms/drizzle/postgres' import { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core' +import path from 'path' import { createDatabaseAdapter, defaultBeginTransaction } from 'payload' +import { fileURLToPath } from 'url' import type { Args, PostgresAdapter } from './types.js' import { connect } from './connect.js' +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) + export function postgresAdapter(args: Args): DatabaseAdapterObj { const postgresIDType = args.idType || 'serial' const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text' @@ -88,6 +93,9 @@ export function postgresAdapter(args: Args): DatabaseAdapterObj beforeSchemaInit: args.beforeSchemaInit ?? [], createDatabase, createExtensions, + createMigration(args) { + return createMigration.bind(this)({ ...args, dirname }) + }, defaultDrizzleSnapshot, disableCreateDatabase: args.disableCreateDatabase ?? false, drizzle: undefined, @@ -132,7 +140,6 @@ export function postgresAdapter(args: Args): DatabaseAdapterObj createGlobal, createGlobalVersion, createJSONQuery, - createMigration, createVersion, defaultIDType: payloadIDType, deleteMany, diff --git a/packages/db-vercel-postgres/src/index.ts b/packages/db-vercel-postgres/src/index.ts index f1d2752d26b..0aad626561b 100644 --- a/packages/db-vercel-postgres/src/index.ts +++ b/packages/db-vercel-postgres/src/index.ts @@ -50,12 +50,17 @@ import { requireDrizzleKit, } from '@payloadcms/drizzle/postgres' import { pgEnum, pgSchema, pgTable } from 'drizzle-orm/pg-core' +import path from 'path' import { createDatabaseAdapter, defaultBeginTransaction } from 'payload' +import { fileURLToPath } from 'url' import type { Args, VercelPostgresAdapter } from './types.js' import { connect } from './connect.js' +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) + export function vercelPostgresAdapter(args: Args = {}): DatabaseAdapterObj { const postgresIDType = args.idType || 'serial' const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text' @@ -133,7 +138,9 @@ export function vercelPostgresAdapter(args: Args = {}): DatabaseAdapterObj Promise export type Destroy = () => Promise export type CreateMigration = (args: { + /** dirname of the package, required in drizzle */ + dirname?: string file?: string /** * Skips the prompt asking to create empty migrations