Initial commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
name: Database Schema Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'prisma/**'
|
||||
- '.github/workflows/schema-check.yml'
|
||||
|
||||
jobs:
|
||||
schema-check:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Validate Prisma schema
|
||||
run: npx prisma validate
|
||||
|
||||
- name: Format Prisma schema
|
||||
run: npx prisma format --check
|
||||
|
||||
- name: Generate Prisma Client
|
||||
run: npx prisma generate
|
||||
|
||||
- name: Check for migration drift
|
||||
run: |
|
||||
# This checks if schema.prisma matches the current migrations
|
||||
# If there are changes without migrations, this will fail
|
||||
npx prisma migrate diff \
|
||||
--from-schema-datamodel prisma/schema.prisma \
|
||||
--to-schema-datasource prisma/schema.prisma \
|
||||
--script > migration-diff.sql
|
||||
|
||||
if [ -s migration-diff.sql ]; then
|
||||
echo "Schema changes detected without migration!"
|
||||
echo "Run 'npx prisma migrate dev' to create a migration"
|
||||
cat migration-diff.sql
|
||||
exit 1
|
||||
fi
|
||||
continue-on-error: true
|
||||
|
||||
- name: Comment PR with schema changes
|
||||
if: failure()
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: '[WARN] Schema changes detected. Please generate a migration with `npx prisma migrate dev`'
|
||||
})
|
||||
Reference in New Issue
Block a user