Skip to content

Seed staging database #62

Seed staging database

Seed staging database #62

Workflow file for this run

name: Seed staging database
on:
workflow_dispatch:
workflow_run:
workflows: ["Build"]
branches: [staging]
types: [completed]
jobs:
seed:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "20"
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
env:
DATABASE_URL: "postgresql://dummy:dummy@localhost:5432/dummy"
run: npx prisma generate
- name: Reset and migrate database
env:
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
run: npx prisma migrate reset --force
- name: Grant permissions to app user
env:
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
run: |
psql "$DATABASE_URL" -c "
GRANT USAGE, CREATE ON SCHEMA public TO tea_app;
GRANT ALL ON ALL TABLES IN SCHEMA public TO tea_app;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO tea_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO tea_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO tea_app;
"
- name: Run seed script
env:
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
SEED_USER_PASSWORD: ${{ secrets.SEED_USER_PASSWORD }}
run: npx tsx prisma/seed/dev-seed.ts