Seed Studio
Charger des donnees de test realistes en respectant les foreign keys et les contraintes. Profils preconfigures pour QA, PO, Dev.
Quand l'utiliser
- Vous montez une nouvelle staging et voulez la peupler en quelques minutes.
- Un PM veut tester un scenario avec 10 clients fictifs sans toucher la prod.
- Un dev a besoin d'un dataset reproductible pour travailler une feature.
Workflow rapide
Seed Studio-> choisir un profil : PO (small dataset realiste), QA (edge cases), Dev (volumineux pour stress).- Selectionner les tables cibles. Le smart inject calcule l'ordre topologique d'insertion via le graph FK.
- Configurer les
SeedScenario: nombre de lignes par table, contraintes (date range, enum values, references existantes). Dry-runpour voir le SQL genere et les volumes.Executer. Auralith insere par batch dans le bon ordre, gere les FK, stocke unSeedHistorypour rollback eventuel.
Concepts cles
- Profil : preset (PO, QA, Dev) avec des reglages par defaut.
- SeedScenario : config persistante d'un seed (nom, tables, parametres). Reutilisable.
- SeedHistory : trace d'execution. Permet de re-rejouer ou rollback.
- Smart inject : ordre topologique respectant les FK. Si A.user_id -> B.id, Auralith insere B en premier.
Pieges courants
- Contraintes UNIQUE non gerees : si la table a une contrainte UNIQUE et que vous demandez 1000 lignes mais que les valeurs random collide, Auralith retry mais peut echouer. Reduisez le volume ou changez la generation.
- FK self-reference : table avec
parent_idqui pointe sur elle-meme, Auralith insere en plusieurs passes (parent NULL d'abord, puis update). - Triggers complexes : si la table a des triggers BEFORE INSERT qui modifient les valeurs, le seed peut diverger du dry-run.
- Limite par batch : 1000 rows par batch par defaut. Au-dela, plusieurs batches successifs.
API
# Lister les scenarios sauvegardes
curl https://app.auralith.io/api/v1/projects/{pid}/seed/scenarios \
-H "Authorization: Bearer $API_KEY"
# Executer un scenario
curl -X POST https://app.auralith.io/api/v1/seed/scenarios/{id}/run