Runbook — Réinitialiser la base de production
Réinitialisation unique de la base de production après la fusion des migrations du chantier.
Le 2 octobre 2026, les 18 migrations du rebuild ont été fusionnées en une
seule (packages/db/prisma/migrations/20261002000000_init). Orbit n'avait
aucun utilisateur : la base repart de zéro au lieu de porter l'historique
du chantier. Au passage, les vestiges de l'ancienne plateforme sont partis
(CaptureMode.PLATFORM_TICKET, CaptureRequestStatus.TICKET_ISSUED,
CaptureRequest.ticketRef, ContentRender.bulletinRequestId).
Une base qui a déjà appliqué les anciennes migrations refuse la nouvelle
(prisma migrate deploy voit des migrations inconnues et des tables qui
existent déjà). Il faut donc la vider une fois. C'est une action manuelle,
explicite, faite par le fondateur ; aucun déploiement ne la fait seul.
Avant
- La PR qui porte
20261002000000_initest mergée surmain. - Tu es sur la base d'Orbit (Neon, projet Orbit). Vérifie dans l'éditeur
SQL que les tables sont celles d'Orbit (
StudioMember,Workspace,BrainSpace…) et qu'aucune table d'un autre produit n'y figure. En cas de doute, tu t'arrêtes. - Une sauvegarde existe : dans Neon, crée une branche de la base actuelle
(
backup-avant-init) avant de toucher à quoi que ce soit.
Étapes
-
Dans l'éditeur SQL Neon, sur la base de production d'Orbit :
DROP SCHEMA public CASCADE; CREATE SCHEMA public; -
GitHub → Actions → Deploy production database → Run workflow sur
main. Le workflow applique20261002000000_initpuis vérifie qu'il n'y a aucune dérive (pnpm db:drift). -
En local, avec
DATABASE_URLpointant sur cette base etFOUNDER_EMAILsur ton adresse :pnpm db:seed. Ton membre fondateur existe à nouveau. -
Connecte-toi sur
https://orbit.easyconnector.app/authavec le code à six chiffres. Les anciennes sessions sont invalides (leurs lignes ont disparu) : c'est attendu.
Après
- Les clés API
orb_…et les connexions MCP OAuth d'avant n'existent plus : recrée-les depuis la console développeurs et reconnecte les clients MCP. - Les fichiers Vercel Blob des anciennes générations restent dans le store mais plus rien ne les référence. Tu peux les supprimer depuis le tableau de bord Vercel (store Blob d'Orbit) une fois la nouvelle base vérifiée.
- Supprime la branche Neon
backup-avant-initquand tout fonctionne.
Après cette réinitialisation
La règle redevient la règle : chaque changement Prisma est une nouvelle
migration committée, jamais une réécriture, jamais db push, jamais de
reset d'une base partagée. Cette fusion était une exception, possible
uniquement parce qu'Orbit n'avait aucun utilisateur.
Tant que packages/db/PHASE vaut pre-users, une nouvelle fusion reste
possible, sur ton GO écrit uniquement ; dès qu'il vaut production, elle
est interdite. Voir Runbook base-de-donnees.