🐢

GitHub Actions でcorepack経由のpnpmを使い、Prismaのmigrationを本番環境に適用する

2024/11/03に公開

これは何?

タイトルの通りです。以下にワークフローファイルの構成を示します(参考: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 }}

備考

  • environmentnameは、GitHubに追加したsecretの環境名を指定してください(参考:公式ドキュメント)。
  • node-versionは自身のpackeage.jsonの内容に合わせてください
  • pnpmcorepack経由で利用します。ローカルでcorepack enableコマンドとcorepack use pnpm@latestコマンドを実行してpackage.jsonpackageManagerエントリを追記させてください

Discussion