fix(ci): use drizzle-kit push instead of migrations

- Drop and recreate schema using drizzle-kit push
- Add drizzle.ci.config.ts for CI database setup
- This ensures the generated schema is used directly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Martin Porwoll 2025-12-16 15:36:03 +00:00
parent 65f0d1cb74
commit 34077c280e
2 changed files with 22 additions and 12 deletions

View file

@ -129,12 +129,12 @@ jobs:
- name: Setup Database Schema - name: Setup Database Schema
run: | run: |
echo "Testing database connection..." echo "Testing database connection..."
PGPASSWORD=payload_test_password psql -h localhost -U payload -d payload_test -c "SELECT 1;" || echo "DB connection failed" PGPASSWORD=payload_test_password psql -h localhost -U payload -d payload_test -c "SELECT 1;"
echo "Running migrate:reset..." echo "Dropping existing tables..."
pnpm exec payload migrate:reset --force || echo "Reset had issues" PGPASSWORD=payload_test_password psql -h localhost -U payload -d payload_test -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
echo "Running migrate..." echo "Creating schema from generated file..."
pnpm exec payload migrate || echo "Migrate had issues" pnpm exec drizzle-kit push --config=./drizzle.ci.config.ts --force
echo "Migration completed." echo "Schema created."
timeout-minutes: 5 timeout-minutes: 5
env: env:
CI: true CI: true
@ -271,12 +271,12 @@ jobs:
- name: Setup Database Schema - name: Setup Database Schema
run: | run: |
echo "Testing database connection..." echo "Testing database connection..."
PGPASSWORD=payload_test_password psql -h localhost -U payload -d payload_test -c "SELECT 1;" || echo "DB connection failed" PGPASSWORD=payload_test_password psql -h localhost -U payload -d payload_test -c "SELECT 1;"
echo "Running migrate:reset..." echo "Dropping existing tables..."
pnpm exec payload migrate:reset --force || echo "Reset had issues" PGPASSWORD=payload_test_password psql -h localhost -U payload -d payload_test -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
echo "Running migrate..." echo "Creating schema from generated file..."
pnpm exec payload migrate || echo "Migrate had issues" pnpm exec drizzle-kit push --config=./drizzle.ci.config.ts --force
echo "Migration completed." echo "Schema created."
timeout-minutes: 5 timeout-minutes: 5
env: env:
CI: true CI: true

10
drizzle.ci.config.ts Normal file
View file

@ -0,0 +1,10 @@
import { defineConfig } from 'drizzle-kit'
export default defineConfig({
schema: './src/payload-generated-schema.ts',
out: './drizzle',
dialect: 'postgresql',
dbCredentials: {
url: process.env.DATABASE_URI || 'postgresql://payload:payload_test_password@localhost:5432/payload_test',
},
})