From d20445b6f365e7064e6acd815b449b9af8d91429 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Fri, 8 Nov 2024 13:26:45 -0500 Subject: [PATCH] fix(db-mongodb): write migrations index file (#9071) fix: remove 'undefined' written into mongodb migrations fix: write migrations index file --- packages/db-mongodb/src/createMigration.ts | 10 ++++++---- test/database/int.spec.ts | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/db-mongodb/src/createMigration.ts b/packages/db-mongodb/src/createMigration.ts index 941d01686..3475baba8 100644 --- a/packages/db-mongodb/src/createMigration.ts +++ b/packages/db-mongodb/src/createMigration.ts @@ -2,15 +2,14 @@ import type { CreateMigration, MigrationTemplateArgs } from 'payload' import fs from 'fs' import path from 'path' -import { getPredefinedMigration } from 'payload' +import { getPredefinedMigration, writeMigrationIndex } from 'payload' import { fileURLToPath } from 'url' const migrationTemplate = ({ downSQL, imports, upSQL }: MigrationTemplateArgs): string => `import { - MigrateUpArgs, MigrateDownArgs, + MigrateUpArgs, } from '@payloadcms/db-mongodb' -${imports} - +${imports ?? ''} export async function up({ payload, req }: MigrateUpArgs): Promise { ${upSQL ?? ` // Migration code`} } @@ -51,5 +50,8 @@ export const createMigration: CreateMigration = async function createMigration({ const fileName = migrationName ? `${timestamp}_${formattedName}.ts` : `${timestamp}_migration.ts` const filePath = `${dir}/${fileName}` fs.writeFileSync(filePath, migrationFileContent) + + writeMigrationIndex({ migrationsDir: payload.db.migrationDir }) + payload.logger.info({ msg: `Migration created at ${filePath}` }) } diff --git a/test/database/int.spec.ts b/test/database/int.spec.ts index 189e6f425..46a40ae76 100644 --- a/test/database/int.spec.ts +++ b/test/database/int.spec.ts @@ -145,6 +145,12 @@ describe('database', () => { expect(migrationFile).toContain('_test') }) + it('should create index.ts file in the migrations directory with file imports', () => { + const indexFile = path.join(payload.db.migrationDir, 'index.ts') + const indexFileContent = fs.readFileSync(indexFile, 'utf8') + expect(indexFileContent).toContain("_test from './") + }) + it('should run migrate', async () => { let error try {