chore: safely import drizzle-kit

This commit is contained in:
James
2024-03-10 19:03:15 -04:00
parent 76c9632417
commit 1a8564bc35
3 changed files with 12 additions and 3 deletions

View File

@@ -3,10 +3,13 @@ import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'
import type { CreateMigration } from 'payload/database' import type { CreateMigration } from 'payload/database'
import fs from 'fs' import fs from 'fs'
import { createRequire } from 'module'
import prompts from 'prompts' import prompts from 'prompts'
import type { PostgresAdapter } from './types.js' import type { PostgresAdapter } from './types.js'
const require = createRequire(import.meta.url)
const migrationTemplate = ( const migrationTemplate = (
upSQL?: string, upSQL?: string,
downSQL?: string, downSQL?: string,
@@ -60,7 +63,7 @@ export const createMigration: CreateMigration = async function createMigration(
fs.mkdirSync(dir) fs.mkdirSync(dir)
} }
const { generateDrizzleJson, generateMigration } = await import('drizzle-kit/payload') const { generateDrizzleJson, generateMigration } = require('drizzle-kit/payload')
const [yyymmdd, hhmmss] = new Date().toISOString().split('T') const [yyymmdd, hhmmss] = new Date().toISOString().split('T')
const formattedDate = yyymmdd.replace(/\D/g, '') const formattedDate = yyymmdd.replace(/\D/g, '')

View File

@@ -3,6 +3,7 @@ import type { Payload } from 'payload'
import type { Migration } from 'payload/database' import type { Migration } from 'payload/database'
import type { PayloadRequest } from 'payload/types' import type { PayloadRequest } from 'payload/types'
import { createRequire } from 'module'
import { import {
commitTransaction, commitTransaction,
initTransaction, initTransaction,
@@ -17,6 +18,8 @@ import { createMigrationTable } from './utilities/createMigrationTable.js'
import { migrationTableExists } from './utilities/migrationTableExists.js' import { migrationTableExists } from './utilities/migrationTableExists.js'
import { parseError } from './utilities/parseError.js' import { parseError } from './utilities/parseError.js'
const require = createRequire(import.meta.url)
export async function migrate(this: PostgresAdapter): Promise<void> { export async function migrate(this: PostgresAdapter): Promise<void> {
const { payload } = this const { payload } = this
const migrationFiles = await readMigrationFiles({ payload }) const migrationFiles = await readMigrationFiles({ payload })
@@ -82,7 +85,7 @@ export async function migrate(this: PostgresAdapter): Promise<void> {
} }
async function runMigrationFile(payload: Payload, migration: Migration, batch: number) { async function runMigrationFile(payload: Payload, migration: Migration, batch: number) {
const { generateDrizzleJson } = await import('drizzle-kit/payload') const { generateDrizzleJson } = require('drizzle-kit/payload')
const start = Date.now() const start = Date.now()
const req = { payload } as PayloadRequest const req = { payload } as PayloadRequest

View File

@@ -1,10 +1,13 @@
import { eq } from 'drizzle-orm' import { eq } from 'drizzle-orm'
import { numeric, timestamp, varchar } from 'drizzle-orm/pg-core' import { numeric, timestamp, varchar } from 'drizzle-orm/pg-core'
import { createRequire } from 'module'
import prompts from 'prompts' import prompts from 'prompts'
import type { PostgresAdapter } from '../types.js' import type { PostgresAdapter } from '../types.js'
const { pushSchema } = await import('drizzle-kit/payload') const require = createRequire(import.meta.url)
const { pushSchema } = require('drizzle-kit/payload')
/** /**
* Pushes the development schema to the database using Drizzle. * Pushes the development schema to the database using Drizzle.