Seeds (back/seeds)

npm run seed (local) / npm run seed:preprod rejoue des upserts idempotents (track = false) : feature_toggle, message_template, puis le référentiel (referentiel.seeder.ts).

  • message_template : dump réel, html à null quand brevoTemplateId est renseigné (le contenu vit chez Brevo).
  • Référentiel (fixtures/<table>.json (un fichier par table), colonnes en snake_case, upsert SQL brut, ordre des FK) : partner, step_sequence, step_sequence_partners_partner, besoin, sous_besoin, ressource_jeune, ressource_jeune_sous_besoin, step_message, steps, todo_default_task. Ids explicites car référencés ailleurs.
  • ressource (lorem ipsum legacy) n'est pas seedée.
  • Le fixture a été tiré de la base locale, sauf ressource_jeune (source : prod, la base locale avait des URLs à null). Seul le lien (3, article1) de step_sequence_partners_partner était cohérent : les 4 autres pointaient vers des step_sequence absentes.
  • step_message : seulement les séquences 3, 6, 7 (les 1, 2, 4, 5 n'existent plus). Le template est référencé par template_name et résolu en template_id au seed (ids auto-incrémentés, différents d'une base à l'autre) : MessageTemplatesSeeder doit passer avant. step_message et steps se référencent mutuellement, donc les FK sont coupées le temps du seed (une seule connexion).
  • Les fixtures JSON s'importent avec import x = require('…json') : sans esModuleInterop, import x from vaut undefined à l'exécution.