Add production-ready database migration system with node-pg-migrate #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Replaces manual schema.sql application with a proper migration system using node-pg-migrate, idempotent bootstrap script, and protected GitHub Actions workflow.
Key Changes
Migration Infrastructure
database/migration-config.js- node-pg-migrate configuration readingDATABASE_URLandPGSSLMODEdatabase/migrations/0001_initial.js- Initial schema as JS migration with up/down supportdatabase/seeds/0001_seeds.sql- Idempotent seeds usingON CONFLICT DO NOTHINGBootstrap Tooling
scripts/bootstrap-db.sh- Executable script with dependency validation and error handlingmigrate:up,migrate:down,db:bootstrapCI/CD
.github/workflows/db-bootstrap.yml- Manual workflow with environment approval gatesDocumentation
docs/DB_MIGRATIONS.md- Local setup, CI/CD flow, troubleshooting, security practicesTechnical Decisions
pgcrypto over uuid-ossp: Uses
gen_random_uuid()instead ofuuid_generate_v4()for better compatibility with managed PostgreSQL providers (Supabase, RDS, etc.) that restrict extension permissions.JavaScript migrations: Enables programmatic up/down migrations with built-in transaction support, rather than raw SQL files.
Usage
Local development:
Create migrations:
Production deployment via GitHub Actions requires manual approval from protected environment reviewers.
Original prompt
But : ajouter une gestion de migrations robuste et un bootstrap idempotent pour la base de données Supabase, plus quelques fichiers d'accompagnement et adaptation du workflow CI.
Contexte :
Tâches à réaliser dans la PR :
Contraintes & décisions prises (à inclure dans PR description):
Livrables (liste des fichiers ajoutés/modifiés) :
Instructions post-merge :
This pull request was created as a result of the following prompt from Copilot chat.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.