Checkpoint: Correction du bug d'import Excel - Retrait de la colonne publicCible inexistante dans la table formations. Ajout de logs de débogage et amélioration de la gestion des erreurs d'import.

This commit is contained in:
Manus Sandbox
2025-11-25 14:22:36 -05:00
parent 5fde389c85
commit c4f9cb9ebc
6 changed files with 204 additions and 2 deletions

View File

@@ -192,27 +192,47 @@ export async function importToDatabase(
const formationIdMap = new Map<string, number>();
// Importer les formations
console.log(`[Import] Début import de ${formations.length} formations`);
for (const formation of formations) {
try {
console.log(`[Import] Création formation: ${formation.nom}`);
const result = await db.insert(formationsTable).values({
nom: formation.nom,
description: formation.description,
publicCible: formation.publicCible,
lienUnique: generateUniqueLien(),
});
const formationId = Number(result.insertId);
formationIdMap.set(formation.nom.toLowerCase(), formationId);
console.log(`[Import] Formation créée avec ID ${formationId}, ajoutée à la map avec clé: "${formation.nom.toLowerCase()}"`);
formationsCreated++;
} catch (error: any) {
console.error(`[Import] Erreur formation "${formation.nom}":`, error);
errors.push(`Erreur lors de la création de la formation "${formation.nom}": ${error.message}`);
}
}
console.log(`[Import] Formations créées: ${formationsCreated}, Map size: ${formationIdMap.size}`);
console.log(`[Import] Clés dans la map:`, Array.from(formationIdMap.keys()));
// Si des erreurs sont survenues lors de la création des formations, arrêter l'import
if (errors.length > 0) {
console.error(`[Import] Arrêt de l'import car ${errors.length} erreur(s) lors de la création des formations`);
return {
success: false,
formationsCreated,
sequencesCreated: 0,
errors,
warnings,
};
}
// Importer les séquences
console.log(`[Import] Début import de ${sequences.length} séquences`);
for (const sequence of sequences) {
try {
const formationId = formationIdMap.get(sequence.formationNom.toLowerCase());
const searchKey = sequence.formationNom.toLowerCase();
console.log(`[Import] Recherche formation pour séquence "${sequence.nom}" avec clé: "${searchKey}"`);
const formationId = formationIdMap.get(searchKey);
if (!formationId) {
errors.push(`Formation "${sequence.formationNom}" non trouvée pour la séquence "${sequence.nom}"`);
continue;