Référence — PostgreSQL, RLS & migrations
Règles de données multi-tenant et migrations compatibles rollback.
Rôles
pnp_migrator = DDL / propriétaire des objets
pnp_app = runtime DML, pas propriétaire, pas BYPASSRLS
RLS
ALTER TABLE members ENABLE ROW LEVEL SECURITY;
ALTER TABLE members FORCE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON members
USING (club_id = current_setting('app.current_club_id', true)::int)
WITH CHECK (club_id = current_setting('app.current_club_id', true)::int);Migrations expand / contract
- Expand : ajouter le nouveau schéma sans supprimer l’ancien.
- Déployer une version compatible avec ancien + nouveau.
- Backfill et vérification.
- Contract : dans une release ultérieure, supprimer l’ancien seulement quand le rollback vers la version précédente n’en dépend plus.