Files
payload/test/database/postgres-relationships-v2-v3-migration/int.spec.ts
Sasha 07be617963 fix(db-postgres): relationships v2-v3 migration errors when migrating from v2 to stable v3 (#10080)
When migrating from stable v2 to v3, the provided relationships
migration fails because of not having `payload_locked_documents` and
`payload_locked_documents_rels` tables in the migration generated in v2.


![image](https://github.com/user-attachments/assets/0dc57e6a-5e6e-4b74-bcab-70e660f4e939)
2024-12-19 19:09:07 +00:00

52 lines
1.3 KiB
TypeScript

/* eslint-disable jest/require-top-level-describe */
import path from 'path'
import { buildConfig, getPayload } from 'payload'
import { fileURLToPath } from 'url'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
const describe =
process.env.PAYLOAD_DATABASE === 'postgres' ? global.describe : global.describe.skip
describe('Postgres relationships v2-v3 migration', () => {
it('should execute relationships v2-v3 migration', async () => {
const { databaseAdapter } = await import(path.resolve(dirname, '../../databaseAdapter.js'))
const init = databaseAdapter.init
// set options
databaseAdapter.init = ({ payload }) => {
const adapter = init({ payload })
adapter.migrationDir = path.resolve(dirname, 'migrations')
adapter.push = false
return adapter
}
const config = await buildConfig({
db: databaseAdapter,
secret: 'secret',
collections: [
{
slug: 'users',
auth: true,
fields: [],
},
],
})
const payload = await getPayload({ config })
let hasErr = false
await payload.db.migrate().catch(() => {
hasErr = true
})
expect(hasErr).toBeFalsy()
await payload.db.dropDatabase({ adapter: payload.db as any })
await payload.db.destroy()
})
})