63,7 → 63,7 |
} |
|
private function chargerBdtxa() { |
$chemin = Config::get('chemins.bdtxa'); |
$chemin = Config::get('chemins.bdt'); |
$table = Config::get('tables.bdtxa'); |
$requete = "LOAD DATA INFILE '$chemin' ". |
"REPLACE INTO TABLE $table ". |
80,17 → 80,26 |
$this->initialiserGenerationChamps(); |
$this->preparerTablePrChpNomSciHtml(); |
$generateur = new GenerateurNomSciHtml(); |
$nbreTotal = $this->recupererNbTotalTuples(); |
$nbreTotal = $this->recupererNbTotalTuples(); |
$erreurs = array(); |
$this->departInsertion = 0; |
while ($this->departInsertion < $nbreTotal) { |
$resultat = $this->recupererTuplesPrChpNomSciHtml(); |
$nomsSciEnHtml = $generateur->generer($resultat); |
$resultat = $this->recupererTuplesPrChpNomSciHtml(); |
|
try { |
$nomsSciEnHtml = $generateur->generer($resultat); |
} catch (Exception $e) { |
$erreurs[] = $e->getMessage(); |
} |
|
$this->remplirChpNomSciHtm($nomsSciEnHtml); |
$this->departInsertion += $this->pasInsertion; |
$this->afficherAvancement("Insertion des noms scientifique au format HTML dans la base par paquet de {$this->pasInsertion} en cours"); |
if ($this->stopperLaBoucle($this->getParametre('t'))) break; |
} |
echo "\n"; |
} |
echo "\n"; |
|
$this->creerFichierLog('Erreurs lors de la génération HTML des noms scientifiques', $erreurs, 'erreurs_noms_sci_html'); |
} |
|
private function initialiserGenerationChamps() { |
134,12 → 143,12 |
} |
} |
} |
|
|
private function genererChpNomComplet() { |
$this->preparerTablePrChpNomComplet(); |
$this->remplirChpNomComplet(); |
} |
|
|
private function preparerTablePrChpNomComplet() { |
$requete = "SHOW COLUMNS FROM {$this->table} LIKE 'nom_complet' "; |
$resultat = $this->getBdd()->recuperer($requete); |
150,13 → 159,16 |
$this->getBdd()->requeter($requete); |
} |
} |
|
|
private function remplirChpNomComplet() { |
$this->afficherAvancement("Attribution du champ nom complet au taxons"); |
echo "Attribution du champ nom complet au taxons : "; |
$requete = "UPDATE {$this->table} SET nom_complet = CONCAT(nom_sci,' ',auteur)"; |
$resultat = $this->getBdd()->requeter($requete); |
if ($resultat === false) { |
echo "KO\n"; |
throw new Exception("Erreur de génération du champ nom complet"); |
} else { |
echo "OK\n"; |
} |
} |
|
209,16 → 221,10 |
$this->afficherAvancement("Attribution de leur famille aux synonymes en cours"); |
} |
echo "\n"; |
|
$msg = 'Plusieurs familles sont introuvables'; |
$this->creerFichierLog($msg, $introuvables, 'famille_introuvable'); |
|
if (count($introuvables) != 0) { |
$introuvablesNbre = count($introuvables); |
echo "Famille introuvable pour $introuvablesNbre noms ! Voir le log.\n"; |
|
$logContenu = implode(", \n", $introuvables); |
$logFichier = realpath(dirname(__FILE__)).'/log/famille_introuvable.log'; |
echo $logFichier."\n"; |
file_put_contents($logFichier, $logContenu); |
} |
$this->remplirChpFamille($noms); |
} |
|
257,25 → 263,37 |
private function genererDonneesTestMultiVersion() { |
$contenuSql = $this->recupererContenu(Config::get('chemins.structureSqlTest')); |
$this->executerScripSql($contenuSql); |
|
|
$table = Config::get('tables.bdtxa'); |
$tableTest = Config::get('tables.bdtxaTest'); |
$requete = "INSERT INTO $tableTest SELECT * FROM $table"; |
$this->getBdd()->requeter($requete); |
} |
|
|
private function supprimerDonneesTestMultiVersion() { |
$tableMeta = Config::get('tables.bdtxaMeta'); |
$requete = "DELETE FROM $tableMeta WHERE guid = 'urn:lsid:tela-botanica.org:bdtfx:1.02'"; |
$requete = "DELETE FROM $tableMeta WHERE guid = 'urn:lsid:tela-botanica.org:bdtxa:1.00'"; |
$this->getBdd()->requeter($requete); |
|
|
$tableTest = Config::get('tables.bdtxaTest'); |
$requete = "DROP TABLE IF EXISTS $tableTest"; |
$this->getBdd()->requeter($requete); |
} |
private function supprimerTous() { |
$requete = "DROP TABLE IF EXISTS bdtxa_meta, bdtxa_v0_01"; |
$requete = "DROP TABLE IF EXISTS bdtxa_meta, bdtxa_v0_01, bdtxa_v1_00"; |
$this->getBdd()->requeter($requete); |
} |
|
private function creerFichierLog($message, $lignes, $nomFichier) { |
$lignesNbre = count($lignes); |
if ($lignesNbre != 0) { |
echo "$message. Voir le log de $lignesNbre lignes :\n"; |
|
$logContenu = implode(", \n", $lignes); |
$logFichier = realpath(dirname(__FILE__))."/log/$nomFichier.log"; |
echo $logFichier."\n"; |
file_put_contents($logFichier, $logContenu); |
} |
} |
} |
?> |