Import Teachable

La reprise des étudiants Teachable se fait en ligne de commande, en trois temps : préparer, importer à blanc, appliquer. Une vérification finale contrôle le résultat.
Opération technique, à lancer depuis le projet avec l'accès à la base. Faites une sauvegarde de la base avant l'étape d'application.

Ce dont vous avez besoin

  • L'export global des utilisateurs Teachable (un CSV avec tous les comptes)
  • Un export par formation (le CSV des inscrits de chaque cours)
  • Le slug local de chaque formation déjà créée sur la plateforme

1. Préparer les fichiers

Le script de préparation ne touche pas à la base : il ne fait que transformer les exports bruts en fichiers propres.
pnpm db:prepare-teachable --users export-all.csv \
  --course export-react.csv=formation-react \
  --course export-node.csv=formation-node
Il écrit trois fichiers dans docs/import/prepared :
FichierContenu
users.csvEmail et nom complet des comptes à créer
enrollments.csvQui a accès à quelle formation
mapping.jsonLa correspondance cours Teachable → slug local
Deux options utiles :
  • --out <dossier> — écrire ailleurs que dans le dossier par défaut
  • --skip-empty — exclure les comptes sans aucune formation
Le = sépare le fichier du slug : --course fichier.csv=slug-local. Le slug doit correspondre exactement à celui de la formation créée sur la plateforme.

2. Importer à blanc

Sans l'option --apply, le script est en dry run : il calcule tout et n'écrit rien.
pnpm db:import-teachable \
  --users docs/import/prepared/users.csv \
  --enrollments docs/import/prepared/enrollments.csv \
  --mapping docs/import/prepared/mapping.json
Lisez le rapport avant d'aller plus loin : c'est exactement ce qui sera écrit. Un écart ici vaut mieux qu'un écart en base.

3. Appliquer

Une fois le rapport conforme, relancez la même commande avec --apply :
pnpm db:import-teachable \
  --users docs/import/prepared/users.csv \
  --enrollments docs/import/prepared/enrollments.csv \
  --mapping docs/import/prepared/mapping.json \
  --apply
--apply écrit réellement en base. C'est la seule étape non réversible de la procédure.

4. Vérifier

Le script de vérification est en lecture seule. Il compare le nombre de formations annoncé par l'export Teachable aux accès réellement présents en base :
pnpm db:verify-teachable --users export-all.csv
L'option --details <n> règle le nombre d'écarts détaillés affichés.

Après l'import

Les étudiants importés ont un compte mais pas encore de mot de passe : ils passent par la réinitialisation depuis /reset-password pour entrer la première fois. Leurs accès, eux, sont déjà ouverts.
Les inscriptions importées n'apparaissent pas dans Paiements : ce sont des reprises d'historique, pas des ventes encaissées sur cette plateforme.