Postat acum 1 zi
bash
# 1. ÎNAINTE de orice migrare — backup
pg_dump -h localhost -U user dbname > backup-$(date +%F-%H%M).sql
# 2. Rulezi migrare în dev + commit la migrations/
npx prisma migrate dev --name add_user_bio
# 3. În producție — doar deploy (NU generate migrații noi pe prod!)
npx prisma migrate deploy
# 4. Verifici aplicația, dacă e bug → reverifici prin:
psql -h localhost -U user dbname -c "\d users"Reguli de aur
1. Nu rulezi niciodată migrate dev în producție.
Pe prod doar migrate deploy — care aplică migrațiile deja commit-uite, fără să le modifice.
2. Expand → Deploy → Contract Migrațiile care schimbă coloane trebuie sparte în 3 faze:
- Expand: adaugi coloana nouă (nullable)
- Deploy: codul scrie în ambele coloane
- Contract: faci coloana veche obsolete și o ștergi într-o altă migrare
Altfel ai downtime când schimbi tipuri sau redenumești.
3. Always backup înainte de migrate deploy
Chiar dacă pg_dump durează 2-10 minute, salvezi ore de refacere dacă merge rău.
Checklist de prod
- Backup DB
-
npx prisma migrate status(verifici ce urmează) -
npx prisma migrate deploy -
pm2 restart app - Smoke test pe 2-3 pagini critice
- Verifici logs
pm2 logs app --lines 50