🐢
GitHub Actions でcorepack経由のpnpmを使い、Prismaのmigrationを本番環境に適用する
これは何?
タイトルの通りです。以下にワークフローファイルの構成を示します(参考:Prisma公式ドキュメント):
prisma-migrate-deploy.yml
name: Prisma Migrate Deploy
on:
push:
paths:
- prisma/migrations/** # Only run this workflow when migrations are updated
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: Production
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Corepack enable
run: corepack enable
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '>=20.12.0'
cache: 'pnpm'
- name: Install dependences
run: pnpm install
- name: Apply all pending migrations to the database
run: npx prisma migrate deploy
env:
POSTGRES_PRISMA_URL: ${{ secrets.POSTGRES_PRISMA_URL }}
POSTGRES_URL_NON_POOLING: ${{ secrets.POSTGRES_URL_NON_POOLING }}
備考
-
environment
のname
は、GitHubに追加したsecretの環境名を指定してください(参考:公式ドキュメント)。 -
node-version
は自身のpackeage.json
の内容に合わせてください -
pnpm
はcorepack経由で利用します。ローカルでcorepack enable
コマンドとcorepack use pnpm@latest
コマンドを実行してpackage.json
にpackageManager
エントリを追記させてください
Discussion