| Line 1... |
Line 1... |
| 1 |
<?php
|
1 |
<?php
|
| 2 |
// declare(encoding='UTF-8');
|
2 |
// declare(encoding='UTF-8');
|
| 3 |
/**
|
3 |
/**
|
| 4 |
* Script de migration des Images de la version 1 de la base de données du CEL à la v2.
|
4 |
* Script de migration des Images de la version 1 de la base de données du CEL à la v2.
|
| - |
|
5 |
* Utilisation : /opt/lampp/bin/php cli.php MigrationImages
|
| 5 |
*
|
6 |
*
|
| 6 |
* @category php 5.2
|
7 |
* @category php 5.2
|
| 7 |
* @package Cel/Scripts
|
8 |
* @package Cel/Scripts
|
| 8 |
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
|
9 |
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
|
| 9 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
10 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
| 10 |
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
|
11 |
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
|
| 11 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
12 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
| 12 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
13 |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
|
| 13 |
* @version $Id$
|
14 |
* @version $Id$
|
| 14 |
*/
|
15 |
*/
|
| 15 |
class MigrationImages extends Cel {
|
16 |
class MigrationImages {
|
| Line 16... |
Line 17... |
| 16 |
|
17 |
|
| 17 |
const dry_run = false;
|
18 |
const dry_run = false;
|
| 18 |
const truncate = true; //Doit on vider les tables de destination ?
|
19 |
const truncate = true; //Doit on vider les tables de destination ?
|
| 19 |
const separateur_champs_metadonnees = ';';
|
20 |
const separateur_champs_metadonnees = ';';
|
| Line -... |
Line 21... |
| - |
|
21 |
const separateur_valeurs_metadonnees = ':';
|
| - |
|
22 |
|
| 20 |
const separateur_valeurs_metadonnees = ':';
|
23 |
private $bdd = null;
|
| 21 |
|
24 |
private $script = null;
|
| 22 |
public static $bdd_cel_migration;
|
25 |
public static $bdd_cel_migration;
|
| 23 |
public static $bdd_utilisateurs;
|
26 |
public static $bdd_utilisateurs;
|
| 24 |
private $cle_id_metadonnees = array();
|
27 |
private $cle_id_metadonnees = array();
|
| Line 638... |
Line 641... |
| 638 |
'2#242' => array('id' => '242', 'tag' => 'Unknown242', 'categorie' => 'Unknown'),
|
641 |
'2#242' => array('id' => '242', 'tag' => 'Unknown242', 'categorie' => 'Unknown'),
|
| 639 |
'2#254' => array('id' => '254', 'tag' => 'Unknown254', 'categorie' => 'Unknown'),
|
642 |
'2#254' => array('id' => '254', 'tag' => 'Unknown254', 'categorie' => 'Unknown'),
|
| 640 |
'2#255' => array('id' => '255', 'tag' => 'CatalogSets', 'categorie' => 'ApplicationRecord')
|
643 |
'2#255' => array('id' => '255', 'tag' => 'CatalogSets', 'categorie' => 'ApplicationRecord')
|
| 641 |
);
|
644 |
);
|
| Line 642... |
Line -... |
| 642 |
|
- |
|
| 643 |
/**
|
645 |
|
| 644 |
* Méthode appelée avec une requête de type GET.
|
- |
|
| 645 |
*/
|
646 |
public function __construct(Conteneur $conteneur) {
|
| 646 |
public function getElement($params) {
|
647 |
$bddMigration = $conteneur->getParametre('database_cel.database_migration');
|
| 647 |
if (!isset($this->config['database_cel']['database_migration']) || $this->config['database_cel']['database_migration'] == '') {
|
648 |
if ($bddMigration == null || $bddMigration == '') {
|
| 648 |
echo 'Attention la variable de configuration database_migration dans la section database_cel, contenant la base de données d\'arrivée, doit être remplie '."\n";
|
649 |
echo 'Attention la variable de configuration database_migration dans la section database_cel, contenant la base de données d\'arrivée, doit être remplie '."\n";
|
| 649 |
exit;
|
650 |
exit;
|
| 650 |
}
|
651 |
}
|
| - |
|
652 |
$bddIdentification = $conteneur->getParametre('database_ident.database');
|
| 651 |
if (!isset($this->config['database_ident']['database']) || $this->config['database_ident']['database'] == '') {
|
653 |
if ($bddIdentification == null || $bddIdentification == '') {
|
| 652 |
echo 'Attention la variable de configuration database dans la section database_ident, contenant la base de données utilisateurs, doit être remplie '."\n";
|
654 |
echo 'Attention la variable de configuration database dans la section database_ident, contenant la base de données utilisateurs, doit être remplie '."\n";
|
| 653 |
exit;
|
655 |
exit;
|
| 654 |
}
|
656 |
}
|
| 655 |
|
657 |
|
| 656 |
self::$bdd_cel_migration = $this->config['database_cel']['database_migration'];
|
658 |
self::$bdd_cel_migration = $conteneur->getParametre('database_cel.database_migration');
|
| 657 |
self::$bdd_utilisateurs = $this->config['database_ident']['database'];
|
659 |
self::$bdd_utilisateurs = $conteneur->getParametre('database_ident.database');
|
| - |
|
660 |
|
| 658 |
|
661 |
$this->bdd = $conteneur->getBdd();
|
| Line -... |
Line 662... |
| - |
|
662 |
$this->script = $conteneur->getScript();
|
| - |
|
663 |
|
| - |
|
664 |
$this->cle_id_metadonnees = array_merge($this->ids_tags_exif, $this->ids_tags_iptc);
|
| - |
|
665 |
}
|
| - |
|
666 |
|
| - |
|
667 |
/**
|
| - |
|
668 |
* Méthode appelée pour executer le script.
|
| 659 |
$this->cle_id_metadonnees = array_merge($this->ids_tags_exif, $this->ids_tags_iptc);
|
669 |
*/
|
| 660 |
|
670 |
public function executer($params) {
|
| 661 |
echo "--MIGRATION DES IMAGES --------------------------------------\n";
|
671 |
echo "--MIGRATION DES IMAGES --------------------------------------\n";
|
| 662 |
//1. TEMPORAIRE : vider les tables de destinations
|
672 |
//1. TEMPORAIRE : vider les tables de destinations
|
| 663 |
if (self::truncate) {
|
673 |
if (self::truncate) {
|
| 664 |
echo "-------------------------------------------------------------------\n\n";
|
674 |
echo "-------------------------------------------------------------------\n";
|
| 665 |
echo " ETAPE 0. Vider les tables ... \n\n";
|
675 |
echo " ETAPE 0. Vider les tables ... \n";
|
| 666 |
echo "-------------------------------------------------------------------\n\n";
|
676 |
echo "-------------------------------------------------------------------\n";
|
| 667 |
$nouvellesTables = array('cel_images', 'cel_obs_images');
|
677 |
$nouvellesTables = array('cel_images', 'cel_obs_images');
|
| 668 |
foreach ($nouvellesTables as $nomTable) {
|
678 |
foreach ($nouvellesTables as $nomTable) {
|
| 669 |
echo 'Vider la table '.$nomTable.'...';
|
679 |
echo 'Vider la table '.$nomTable.'...';
|
| 670 |
$requeteTruncate = 'TRUNCATE TABLE '.self::$bdd_cel_migration.'.'.$nomTable;
|
680 |
$requeteTruncate = 'TRUNCATE TABLE '.self::$bdd_cel_migration.'.'.$nomTable;
|
| 671 |
$resultatTruncate = $this->executerRequete($requeteTruncate);
|
681 |
$resultatTruncate = $this->bdd->executer($requeteTruncate);
|
| 672 |
echo "ok \n";
|
- |
|
| 673 |
}
|
- |
|
| 674 |
|
682 |
echo "ok \n";
|
| Line 675... |
Line 683... |
| 675 |
echo "\n---------------------------------------------------------------- OK\n\n";
|
683 |
}
|
| 676 |
}
|
684 |
}
|
| 677 |
|
685 |
|
| 678 |
echo "-------------------------------------------------------------------\n\n";
|
686 |
echo "-------------------------------------------------------------------\n";
|
| 679 |
echo " ETAPE 1. Paramétrage ... \n\n";
|
687 |
echo " ETAPE 1. Paramétrage ... \n";
|
| Line 680... |
Line 688... |
| 680 |
echo "-------------------------------------------------------------------\n\n";
|
688 |
echo "-------------------------------------------------------------------\n";
|
| 681 |
$this->getUtilisateurs();
|
689 |
$this->getUtilisateurs();
|
| 682 |
$this->getObservations();
|
690 |
$this->getObservations();
|
| 683 |
|
691 |
|
| 684 |
echo "-------------------------------------------------------------------\n\n";
|
692 |
echo "-------------------------------------------------------------------\n";
|
| 685 |
echo " ETAPE 2. Migration des images ... \n\n";
|
693 |
echo " ETAPE 2. Migration des images ... \n";
|
| 686 |
echo "-------------------------------------------------------------------\n\n";
|
- |
|
| Line 687... |
Line 694... |
| 687 |
$this->migrerImages();
|
694 |
echo "-------------------------------------------------------------------\n";
|
| 688 |
$this->mettreANullPrenomNomVide();
|
695 |
$this->migrerImages();
|
| 689 |
$this->ordonnerImages();
|
696 |
$this->mettreANullPrenomNomVide();
|
| 690 |
echo "\n"."\n"."\n";
|
697 |
$this->ordonnerImages();
|
| 691 |
|
- |
|
| 692 |
echo "-------------------------------------------------------------------\n\n";
|
698 |
|
| Line 693... |
Line 699... |
| 693 |
echo " ETAPE 3. migration des liaisons obs images ... \n\n";
|
699 |
echo "-------------------------------------------------------------------\n";
|
| 694 |
echo "-------------------------------------------------------------------\n\n";
|
- |
|
| 695 |
$this->migrerLiaisonsObsImages();
|
700 |
echo " ETAPE 3. migration des liaisons obs images ... \n";
|
| Line 696... |
Line 701... |
| 696 |
echo "\n"."\n"."\n";
|
701 |
echo "-------------------------------------------------------------------\n";
|
| 697 |
}
|
702 |
$this->migrerLiaisonsObsImages();
|
| 698 |
|
703 |
}
|
| Line 699... |
Line 704... |
| 699 |
private function getUtilisateurs() {
|
704 |
|
| 700 |
echo "\n-------------------------------------------------------------------\n";
|
705 |
private function getUtilisateurs() {
|
| 701 |
echo "--SELECTION DES UTILISATEURS---------------------------------------\n\n";
|
706 |
echo "SELECTION DES UTILISATEURS\n";
|
| Line 702... |
Line 707... |
| 702 |
|
707 |
|
| 703 |
$requete = 'SELECT U_ID as id, U_MAIL as mail, U_NAME as nom, U_SURNAME as prenom, U_PASSWD as pass '.
|
- |
|
| 704 |
'FROM '.self::$bdd_utilisateurs.'.annuaire_tela';
|
708 |
$requete = 'SELECT U_ID as id, U_MAIL as mail, U_NAME as nom, U_SURNAME as prenom, U_PASSWD as pass '.
|
| Line 705... |
Line 709... |
| 705 |
$tableau_utilisateurs = $this->executerRequete($requete);
|
709 |
'FROM '.self::$bdd_utilisateurs.'.annuaire_tela';
|
| 706 |
|
710 |
$tableau_utilisateurs = $this->bdd->requeter($requete);
|
| 707 |
foreach ($tableau_utilisateurs as &$utilisateur) {
|
711 |
|
| 708 |
$this->tableau_utilisateurs[$utilisateur['mail']] = $utilisateur;
|
712 |
foreach ($tableau_utilisateurs as &$utilisateur) {
|
| 709 |
}
|
713 |
$this->tableau_utilisateurs[$utilisateur['mail']] = $utilisateur;
|
| 710 |
|
714 |
}
|
| Line 711... |
Line 715... |
| 711 |
echo sizeof($this->tableau_utilisateurs)." utilisateurs sélectionnés";
|
715 |
|
| 712 |
echo "\n-----------------------------------------------------------------OK\n";
|
716 |
echo sizeof($this->tableau_utilisateurs)." utilisateurs sélectionnés\n";
|
| 713 |
}
|
717 |
}
|
| 714 |
|
718 |
|
| 715 |
private function getObservations() {
|
719 |
private function getObservations() {
|
| 716 |
$pas = 5000;
|
720 |
$pas = 5000;
|
| 717 |
$nObs = 'SELECT COUNT(*) AS nb FROM cel_inventory';
|
721 |
$nObs = 'SELECT COUNT(*) AS nb FROM cel_inventory';
|
| 718 |
$resultatNbObs = $this->executerRequete($nObs);
|
722 |
$resultatNbObs = $this->bdd->requeter($nObs, Bdd::SQL_RETOUR_COLONNE);
|
| 719 |
$nbObs = $resultatNbObs[0]['nb'];
|
723 |
$nbObs = $resultatNbObs;
|
| 720 |
$maxLimite = $nbObs + $pas;
|
724 |
$maxLimite = $nbObs + $pas;
|
| Line 721... |
Line 725... |
| 721 |
|
725 |
|
| 722 |
for ($i = 0; $i < $maxLimite; $i += $pas ) {
|
- |
|
| 723 |
$requete_selection_observations = 'SELECT id, ordre, identifiant FROM cel_inventory LIMIT '.$i.", $pas";
|
726 |
for ($i = 0; $i < $maxLimite; $i += $pas ) {
|
| Line 724... |
Line 727... |
| 724 |
$tableau_observations = $this->executerRequete($requete_selection_observations);
|
727 |
$requete_selection_observations = "SELECT id, ordre, identifiant FROM cel_inventory LIMIT $i,$pas ";
|
| 725 |
foreach ($tableau_observations as &$obs) {
|
728 |
$tableau_observations = $this->bdd->requeter($requete_selection_observations);
|
| 726 |
$this->tableau_observations[$obs['identifiant']][$obs['ordre']] = $obs['id'];
|
729 |
foreach ($tableau_observations as &$obs) {
|
| 727 |
}
|
- |
|
| 728 |
$this->afficherAvancement('Selection des observations (par '.$pas.' )');
|
730 |
$this->tableau_observations[$obs['identifiant']][$obs['ordre']] = $obs['id'];
|
| Line 729... |
Line 731... |
| 729 |
}
|
731 |
}
|
| 730 |
echo "\n\n";
|
- |
|
| 731 |
}
|
- |
|
| 732 |
|
732 |
$this->script->afficherAvancement('Selection des observations (par '.$pas.' )');
|
| 733 |
private function migrerImages() {
|
- |
|
| 734 |
$debut = 0;
|
733 |
}
|
| 735 |
$pas = 100;
|
- |
|
| 736 |
|
- |
|
| 737 |
//Selectionner le nombre d'images
|
- |
|
| 738 |
$requeteNbImg = "SELECT COUNT(*) as nb FROM cel_images";
|
- |
|
| 739 |
$resultatNbImg = $this->executerRequete($requeteNbImg);
|
- |
|
| 740 |
$fin = $resultatNbImg[0]['nb'];
|
- |
|
| 741 |
$maxLimite = $fin + $pas;
|
734 |
echo "\n";
|
| 742 |
|
735 |
}
|
| 743 |
for ($i = $debut; $i <= $maxLimite ; $i += $pas) {
|
736 |
|
| 744 |
$requete = 'SELECT * '.
|
737 |
private function migrerImages() {
|
| 745 |
'FROM cel_images '.
|
738 |
$pas = 100;
|
| 746 |
'ORDER BY ci_id_image ASC LIMIT '.$i.','.$pas;
|
739 |
|
| 747 |
|
740 |
//Selectionner le nombre d'images
|
| Line -... |
Line 741... |
| - |
|
741 |
$requeteNbImg = "SELECT COUNT(*) as nb FROM cel_images";
|
| - |
|
742 |
$fin = $this->bdd->requeter($requeteNbImg, BDD::SQL_RETOUR_COLONNE);
|
| 748 |
$images = @$this->requeter($requete);
|
743 |
$maxLimite = $fin + $pas;
|
| - |
|
744 |
|
| 749 |
$requete = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_images (';
|
745 |
for ($i = 0; $i <= $maxLimite ; $i += $pas) {
|
| 750 |
foreach ($this->tableau_nouveau_ancien as $nouveau_champ => $ancien_champ) {
|
- |
|
| 751 |
$requete .= $nouveau_champ.',';
|
746 |
$requete = "SELECT * FROM cel_images ORDER BY ci_id_image ASC LIMIT $i,$pas ";
|
| 752 |
}
|
747 |
$images = $this->bdd->requeter($requete);
|
| 753 |
$requete = rtrim($requete, ',').') VALUES ';
|
748 |
if (is_array($images)) {
|
| 754 |
|
749 |
$imagesNouvelles = array();
|
| 755 |
if (is_array($images)) {
|
750 |
foreach ($images as $image) {
|
| 756 |
$nb_images_a_traiter = count($images);
|
751 |
$image = $this->traiterLigneImage($image);
|
| 757 |
foreach ($images as $image) {
|
752 |
$image = array_map(array($this, 'protegerSiNonNull'), $image);
|
| Line 758... |
Line 753... |
| 758 |
$nouvelle_image = $this->traiterLigneImage($image);
|
753 |
$imagesNouvelles[] = '('.implode(',', array_values($image)).')';
|
| 759 |
$nouvelle_image = array_map(array($this, 'protegerSiNonNull'), $nouvelle_image);
|
754 |
}
|
| 760 |
$requete .= '('.join(',', array_values($nouvelle_image)).'),';
|
755 |
|
| 761 |
}
|
756 |
$bdd = self::$bdd_cel_migration;
|
| 762 |
|
757 |
$champs = implode(', ', array_keys($this->tableau_nouveau_ancien));
|
| 763 |
$requete = rtrim($requete, ',');
|
- |
|
| 764 |
$migration_images = $this->executerRequeteSimple($requete);
|
- |
|
| 765 |
|
- |
|
| 766 |
if (!$migration_images) {
|
- |
|
| 767 |
echo 'la migration des images '.$i.' à '.($i + $nb_images_a_traiter).' a échoué '."\n";
|
- |
|
| 768 |
file_put_contents('/home/jpm/requete.sql', $requete);
|
- |
|
| 769 |
} else {
|
- |
|
| 770 |
$this->afficherAvancement('Migration des images (par '.$pas.' )');
|
- |
|
| 771 |
}
|
- |
|
| 772 |
}
|
- |
|
| 773 |
|
- |
|
| 774 |
if (count($images) < $pas) {
|
- |
|
| 775 |
echo "\n---------------------------------------------------------------- OK\n\n";
|
- |
|
| 776 |
return;
|
- |
|
| 777 |
}
|
- |
|
| 778 |
}
|
- |
|
| 779 |
}
|
- |
|
| 780 |
|
- |
|
| 781 |
/**
|
- |
|
| 782 |
* Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
|
- |
|
| 783 |
* Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
|
- |
|
| 784 |
*
|
- |
|
| 785 |
* @param string le message d'information.
|
- |
|
| 786 |
* @param int le nombre de départ à afficher.
|
- |
|
| 787 |
* @return void le message est affiché dans la console.
|
- |
|
| 788 |
*/
|
- |
|
| 789 |
protected function afficherAvancement($message, $depart = 0) {
|
- |
|
| 790 |
if (! isset(self::$avancement[$message])) {
|
- |
|
| 791 |
self::$avancement[$message] = $depart;
|
758 |
$values = implode(',', $imagesNouvelles);
|
| Line 792... |
Line 759... |
| 792 |
echo "$message : ";
|
759 |
$requete = "INSERT INTO $bdd.cel_images ($champs) VALUES $values ";
|
| 793 |
|
760 |
$migration_images = $this->executerRequeteSimple($requete);
|
| 794 |
$actuel =& self::$avancement[$message];
|
761 |
if (!$migration_images) {
|
| 795 |
echo $actuel++;
|
762 |
echo 'La migration des images '.$i.' à '.($i + count($images)).' a échoué '."\n";
|
| Line 796... |
Line 763... |
| 796 |
} else {
|
763 |
file_put_contents('/home/jpm/requete.sql', $requete);
|
| 797 |
$actuel =& self::$avancement[$message];
|
764 |
} else {
|
| 798 |
|
765 |
$this->script->afficherAvancement('Migration des images (par '.$pas.' )');
|
| 799 |
// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
|
766 |
}
|
| 800 |
$passage = 0;
|
767 |
}
|
| 801 |
if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
|
768 |
|
| 802 |
$passage = 1;
|
769 |
if (count($images) < $pas) {
|
| 803 |
}
|
770 |
echo "\n";
|
| 804 |
echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
|
771 |
return;
|
| Line 805... |
Line 772... |
| 805 |
echo $actuel++;
|
772 |
}
|
| 806 |
}
|
773 |
}
|
| Line 844... |
Line 811... |
| 844 |
return strpos($champ, 'traiter') !== false;
|
811 |
return strpos($champ, 'traiter') !== false;
|
| 845 |
}
|
812 |
}
|
| Line 846... |
Line 813... |
| 846 |
|
813 |
|
| 847 |
private function protegerSiNonNull($valeur) {
|
814 |
private function protegerSiNonNull($valeur) {
|
| 848 |
if ($valeur != 'NULL') {
|
815 |
if ($valeur != 'NULL') {
|
| 849 |
$valeur = $this->proteger($valeur);
|
816 |
$valeur = $this->bdd->proteger($valeur);
|
| 850 |
}
|
817 |
}
|
| 851 |
return $valeur;
|
818 |
return $valeur;
|
| Line 852... |
Line 819... |
| 852 |
}
|
819 |
}
|
| Line 872... |
Line 839... |
| 872 |
}
|
839 |
}
|
| 873 |
}
|
840 |
}
|
| 874 |
return $retour;
|
841 |
return $retour;
|
| 875 |
}
|
842 |
}
|
| Line 876... |
Line 843... |
| 876 |
|
843 |
|
| 877 |
public function mailValide($mail) {
|
844 |
private function mailValide($mail) {
|
| 878 |
// vérification bidon mais ça suffit pour ici
|
845 |
// vérification bidon mais ça suffit pour ici
|
| 879 |
return !(strpos('@',$mail) === false);
|
846 |
return !(strpos($mail, '@') === false);
|
| Line 880... |
Line 847... |
| 880 |
}
|
847 |
}
|
| 881 |
|
848 |
|
| 882 |
private function traiterPrenomUtilisateur($ligne_image) {
|
849 |
private function traiterPrenomUtilisateur($ligne_image) {
|
| Line 1001... |
Line 968... |
| 1001 |
}
|
968 |
}
|
| 1002 |
return $xml;
|
969 |
return $xml;
|
| 1003 |
}
|
970 |
}
|
| Line 1004... |
Line 971... |
| 1004 |
|
971 |
|
| 1005 |
private function migrerLiaisonsObsImages() {
|
- |
|
| 1006 |
$debut = 0;
|
972 |
private function migrerLiaisonsObsImages() {
|
| 1007 |
$pas = 500;
|
- |
|
| 1008 |
|
973 |
$pas = 500;
|
| Line 1009... |
Line 974... |
| 1009 |
$liaisons_obs_inexistantes = 0;
|
974 |
$liaisons_obs_inexistantes = 0;
|
| 1010 |
|
975 |
|
| 1011 |
//Selectionner le nombre de liaisons
|
976 |
//Selectionner le nombre de liaisons
|
| 1012 |
$requeteNbImgObs = "SELECT COUNT(*) AS nb FROM cel_obs_images";
|
977 |
$requeteNbImgObs = "SELECT COUNT(*) AS nb FROM cel_obs_images";
|
| Line 1013... |
Line 978... |
| 1013 |
$resultatNbImgObs = $this->executerRequete($requeteNbImgObs);
|
978 |
$fin = $this->bdd->requeter($requeteNbImgObs, Bdd::SQL_RETOUR_COLONNE);
|
| 1014 |
$fin = $resultatNbImgObs[0]['nb'];
|
979 |
echo "Nbre de liaisons à migrer : $fin\n";
|
| 1015 |
|
980 |
|
| Line 1016... |
Line 981... |
| 1016 |
for ($i = $debut; $i <= $fin ; $i += $pas) {
|
981 |
for ($i = 0; $i <= $fin ; $i += $pas) {
|
| 1017 |
$requete = 'SELECT * FROM cel_obs_images LIMIT '.$i.','.$pas;
|
- |
|
| 1018 |
$tableau_liaisons = $this->executerRequete($requete);
|
- |
|
| 1019 |
|
- |
|
| 1020 |
if (is_array($tableau_liaisons)) {
|
- |
|
| 1021 |
$requete = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_obs_images '.
|
982 |
$requete = "SELECT * FROM cel_obs_images LIMIT $i,$pas ";
|
| 1022 |
'(id_image, id_observation, date_liaison) '.
|
983 |
$tableau_liaisons = $this->bdd->requeter($requete);
|
| 1023 |
'VALUES ';
|
984 |
|
| 1024 |
|
985 |
if (is_array($tableau_liaisons)) {
|
| 1025 |
$sous_requete = array();
|
- |
|
| 1026 |
foreach ($tableau_liaisons as &$liaison) {
|
986 |
$liaisonsNouvelles = array();
|
| 1027 |
$mail_utilisateur = $liaison['coi_ce_utilisateur'];
|
987 |
foreach ($tableau_liaisons as $liaison) {
|
| 1028 |
$id_obs = $liaison['coi_ce_observation'];
|
- |
|
| 1029 |
|
988 |
$mail_utilisateur = $liaison['coi_ce_utilisateur'];
|
| 1030 |
if (isset($this->tableau_observations[$mail_utilisateur][$id_obs])) {
|
989 |
$ordre_obs = $liaison['coi_ce_observation'];
|
| 1031 |
$id_obs = $this->tableau_observations[$mail_utilisateur][$id_obs];
|
990 |
if (isset($this->tableau_observations[$mail_utilisateur][$ordre_obs])) {
|
| 1032 |
|
- |
|
| 1033 |
$sous_requete[] = '('.$this->proteger($liaison['coi_ce_image']).','.
|
991 |
$id_obs = $this->bdd->proteger($this->tableau_observations[$mail_utilisateur][$ordre_obs]);
|
| 1034 |
$this->proteger($id_obs).','.
|
992 |
$id_image = $this->bdd->proteger($liaison['coi_ce_image']);
|
| 1035 |
$this->proteger($liaison['coi_date_liaison']).
|
993 |
$date_liaison = $this->bdd->proteger($liaison['coi_date_liaison']);
|
| 1036 |
')';
|
994 |
$liaisonsNouvelles[] = "($id_image, $id_obs, $date_liaison)";
|
| 1037 |
} else {
|
995 |
} else {
|
| - |
|
996 |
// cas d'une observation inexistante, la liaison est ignorée
|
| 1038 |
// cas d'une observation inexistante, la liaison est ignorée
|
997 |
$liaisons_obs_inexistantes++;
|
| - |
|
998 |
}
|
| - |
|
999 |
}
|
| - |
|
1000 |
if (count($liaisonsNouvelles) != 0) {
|
| 1039 |
$liaisons_obs_inexistantes++;
|
1001 |
$sousRequete = implode(',', $liaisonsNouvelles);
|
| 1040 |
}
|
1002 |
|
| Line 1041... |
Line 1003... |
| 1041 |
}
|
1003 |
$requete = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_obs_images '.
|
| 1042 |
$sous_requete = implode(',', $sous_requete);
|
1004 |
'(id_image, id_observation, date_liaison) '.
|
| 1043 |
$requete .= $sous_requete;
|
1005 |
"VALUES $sousRequete ";
|
| 1044 |
$migration_liaison = $this->executerRequeteSimple($requete);
|
1006 |
$migration_liaison = $this->executerRequeteSimple($requete);
|
| - |
|
1007 |
|
| 1045 |
|
1008 |
if (!$migration_liaison) {
|
| 1046 |
if (!$migration_liaison) {
|
1009 |
echo 'La migration des liaisons obs images de '.$i.' à '.($i+$pas).' a échoué ! '."\n<br />";
|
| 1047 |
echo 'La migration des liaisons obs images de '.$i.' à '.($i+$pas).' a échoué ! '."\n<br />";
|
1010 |
} else {
|
| 1048 |
} else {
|
- |
|
| 1049 |
$this->afficherAvancement('Migration des liaisons obs images (par '.$pas.' )');
|
- |
|
| 1050 |
}
|
1011 |
$this->script->afficherAvancement('Migration des liaisons obs images (par '.$pas.' )');
|
| 1051 |
}
|
1012 |
}
|
| 1052 |
}
|
1013 |
}
|
| Line 1053... |
Line 1014... |
| 1053 |
echo "\n\n";
|
1014 |
}
|
| 1054 |
echo $liaisons_obs_inexistantes ? $liaisons_obs_inexistantes." liaisons image obs ont été ignorées car les obs sont absentes" : '' ;
|
1015 |
}
|
| 1055 |
echo "\n";
|
1016 |
echo "\n";
|
| 1056 |
echo "\n---------------------------------------------------------------- OK\n\n";
|
1017 |
echo $liaisons_obs_inexistantes ? $liaisons_obs_inexistantes." liaisons image obs ont été ignorées car les obs sont absentes\n" : '' ;
|
| 1057 |
}
|
1018 |
}
|
| 1058 |
|
1019 |
|
| Line 1059... |
Line 1020... |
| 1059 |
private function mettreANullPrenomNomVide() {
|
1020 |
private function mettreANullPrenomNomVide() {
|
| 1060 |
$bdd = self::$bdd_cel_migration;
|
1021 |
$bdd = self::$bdd_cel_migration;
|
| 1061 |
$requete = "UPDATE $bdd.cel_images ".
|
1022 |
$requete = "UPDATE $bdd.cel_images ".
|
| 1062 |
'SET prenom_utilisateur = NULL '.
|
1023 |
'SET prenom_utilisateur = NULL '.
|
| 1063 |
"WHERE prenom_utilisateur = '' ";
|
1024 |
"WHERE prenom_utilisateur = '' ";
|
| 1064 |
$this->executer($requete);
|
1025 |
$this->bdd->executer($requete);
|
| 1065 |
|
1026 |
|