Subversion Repositories eFlore/Applications.cel

Rev

Rev 2415 | Blame | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Mise à jour de la base de données afin de l'optimiser :
 * - remplacement du champ "eflore_publiable" de la table "cel_images" par un champ "transmission" (correspondant au champ tansmission des obs)
 * - ajout du champ "date_liaison" dans la table "cel_images"
 * - ajout du champ "ce_observation" dans la table "cel_images"
 * - migration des données de la table cel_obs_images dans cel_images
 * - création d'un index sur cel_images.ce_observation
 * - suppression de la table cel_obs_images
 *
 * Utilisation :
 * - mise à jour de la bdd : <code>/opt/lamp/bin/php cli.php migration_optimisation -a migrer</code>
 *
 * @category   CEL
 * @package    Scripts
 * @subpackage Migration : Optimisation
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
 */
class MigrationOptimisation extends Script {

        public function executer() {
                $cmd = $this->getParametre('a');
                $this->mode_verbeux = $this->getParametre('v');

                switch($cmd) {
                        case 'maj':
                                $this->migrerBdd();
                                break;
                        default:
                                echo "Action «$cmd» inconnue.\n";
                }
        }

        private function migrerBdd() {
                $contenuSql = FichierUtil::recupererContenu(__DIR__.'/maj_optimisation.sql');
                $this->executerScripSql($contenuSql);
        }

        private function executerScripSql($sql) {
                $requetes = SqlUtil::extraireRequetes($sql);
                foreach ($requetes as $requete) {
                        echo "Exécution de la requete : $requete\n";
                        $this->executer($requete);
                }
        }
}