fix(templates): proper migration file import source for vercel-postgres (#8394)

- Add `ci` npm script properly for postgres templates
- Fix import source for migration files when using
`@payloadcms/db-vercel-postgres`
This commit is contained in:
Elliot DeNolf
2024-09-24 12:24:59 -04:00
committed by GitHub
parent 7f3d935b4d
commit 50da2125a5
4 changed files with 27 additions and 3 deletions

View File

@@ -160,7 +160,15 @@ async function main() {
})
// Copy in initial migration if db is postgres. This contains user and media.
if (db === 'postgres') {
if (db === 'postgres' || db === 'vercel-postgres') {
// Add "ci" script to package.json
const packageJsonPath = path.join(destDir, 'package.json')
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'))
packageJson.scripts = packageJson.scripts || {}
packageJson.scripts.ci = 'payload migrate && pnpm build'
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2))
// Handle copying migrations
const migrationSrcDir = path.join(templatesDir, '_data/migrations')
const migrationDestDir = path.join(destDir, 'src/migrations')
@@ -170,6 +178,20 @@ async function main() {
}
log(`Copying migrations from ${migrationSrcDir} to ${migrationDestDir}`)
copyRecursiveSync(migrationSrcDir, migrationDestDir)
// Change all '@payloadcms/db-postgres' import to be '@payloadcms/db-vercel-postgres'
if (db === 'vercel-postgres') {
const migrationFiles = await fs.readdir(migrationDestDir)
for (const migrationFile of migrationFiles) {
const migrationFilePath = path.join(migrationDestDir, migrationFile)
const migrationFileContents = await fs.readFile(migrationFilePath, 'utf8')
const updatedFileContents = migrationFileContents.replaceAll(
'@payloadcms/db-postgres',
'@payloadcms/db-vercel-postgres',
)
await fs.writeFile(migrationFilePath, updatedFileContents)
}
}
}
// TODO: Email?