diff --git a/.github/workflows/run_migrations.yml b/.github/workflows/run_migrations.yml new file mode 100644 index 00000000..41ce5415 --- /dev/null +++ b/.github/workflows/run_migrations.yml @@ -0,0 +1,32 @@ +name: Run migrations +on: + release: + branches: + - main + +jobs: + run-migrations: + runs-on: ubuntu-latest + environment: CI + steps: + - uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.0.0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "23" + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run migrations + working-directory: apps/backend + env: + DATABASE_URL: ${{ secrets.DATABASE_URL }} + run: pnpm exec drizzle-kit migrate \ No newline at end of file diff --git a/apps/backend/drizzle.config.ts b/apps/backend/drizzle.config.ts index 07d7976e..e1736ada 100644 --- a/apps/backend/drizzle.config.ts +++ b/apps/backend/drizzle.config.ts @@ -1,11 +1,15 @@ import type { Config } from 'drizzle-kit' -import { config } from '@/config' + +const DATABASE_URL = process.env.DATABASE_URL +if (!DATABASE_URL) { + throw new Error('DATABASE_URL is required for migrations') +} export default { schema: 'src/db/schema/index.ts', out: 'src/db/migrations', dialect: 'postgresql', - dbCredentials: { url: config.db.DATABASE_URL }, + dbCredentials: { url: DATABASE_URL }, schemaFilter: ['auth', 'public'], migrations: { prefix: 'timestamp',