Loading config/autoload/global.php +3 −8 Original line number Diff line number Diff line Loading @@ -411,17 +411,12 @@ return array( // On ne "cache" la table doctrine_migration_versions que pour // - la commande doctrine-module orm:schema-tool:update // - la commande check:config // - la page admin qui vérifie la configuration : /administration/check_config // parce que sinon, si les commandes de doctrine migration ne voient plus cette table // alors elles essaient de la recréer à chaque fois et elles échouent car la table existe déjà. if ((!isset($_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_URI'] !== "/administration/check_config") && (!isset($_SERVER['argv']) if (!isset($_SERVER['argv']) || !is_array($_SERVER['argv']) || (!in_array('check:config', $_SERVER['argv'], true) && (!in_array('vendor/bin/doctrine-module', $_SERVER['argv'], true) || !in_array('orm:schema-tool:update', $_SERVER['argv'], true))))) { || !in_array('vendor/bin/doctrine-module', $_SERVER['argv'], true) || !in_array('orm:schema-tool:update', $_SERVER['argv'], true)) { return true; } Loading module/Oscar/src/Oscar/Command/OscarCheckConfigCommand.php +18 −0 Original line number Diff line number Diff line Loading @@ -283,6 +283,21 @@ class OscarCheckConfigCommand extends OscarCommandAbstract $io->writeln("<green>OK</green>"); } $io->write(" - Migrations "); $doctrine_migration_config = new \Doctrine\Migrations\Configuration\Migration\PhpFile(__DIR__ . '/../../../../../migrations.php'); $doctrine_migration_dependency_factory = \Doctrine\Migrations\DependencyFactory::fromEntityManager($doctrine_migration_config, new \Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager($em)); $db_available_new_migrations = $doctrine_migration_dependency_factory->getMigrationStatusCalculator()->getNewMigrations(); if (count($db_available_new_migrations->getItems()) > 0) { $io->warning("Obsolète. Migrations en attente :"); foreach ($db_available_new_migrations->getItems() as $db_available_new_migration) { $io->warning(" - " . $db_available_new_migration->getVersion()); } $io->error("EXECUTER vendor/bin/doctrine-migrations migrate"); return self::FAILURE; } else { $io->writeln("<green>OK</green>"); } $validator = new SchemaValidator($em); $errors = $validator->validateMapping(); Loading @@ -290,6 +305,9 @@ class OscarCheckConfigCommand extends OscarCommandAbstract $tool = new \Doctrine\ORM\Tools\SchemaTool($em); $saveMode = false; $db_model_updates = $tool->getUpdateSchemaSql($classes, $saveMode); $db_model_updates = array_filter($db_model_updates, static function ($element) { return $element !== "DROP TABLE doctrine_migration_versions"; }); if (count($db_model_updates) > 0) { $errors[] = 'Modèle de donnée obsolète'; } Loading module/Oscar/src/Oscar/Controller/AdministrationCheckConfigController.php +21 −10 Original line number Diff line number Diff line Loading @@ -109,6 +109,7 @@ class AdministrationCheckConfigController extends AbstractOscarController $db_model_error = NULL; $db_database_error = NULL; $db_model_updates = []; $db_available_new_migrations = []; // ERREURS dans le SCHEMA try { Loading @@ -133,14 +134,23 @@ class AdministrationCheckConfigController extends AbstractOscarController } // $cmf = $this->getEntityManager()->getMetadataFactory(); // $classes = $cmf->getAllMetadata(); // // $tool = new \Doctrine\ORM\Tools\SchemaTool($this->getEntityManager()); // $saveMode = false; // $db_model_updates = $tool->getUpdateSchemaSql($classes, $saveMode); // // $db_model_updates = array_filter($db_model_updates, static function ($element) { // return $element !== "DROP TABLE doctrine_migration_versions"; // }); // if (count($db_model_updates) > 0) { // $db_model_error = 'EXECUTER : php vendor/bin/doctrine-module orm:schema-tool:update --force'; // } $doctrine_migration_config = new \Doctrine\Migrations\Configuration\Migration\PhpFile(__DIR__ . '/../../../../../migrations.php'); $doctrine_migration_dependency_factory = \Doctrine\Migrations\DependencyFactory::fromEntityManager($doctrine_migration_config, new \Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager($this->getEntityManager())); $db_available_new_migrations = $doctrine_migration_dependency_factory->getMigrationStatusCalculator()->getNewMigrations(); } catch (\Exception $e) { $db_model_error = "ERROR VALIDATION SCHEMA : " . $e->getMessage(); $db_database_error = "non testé"; Loading Loading @@ -358,6 +368,7 @@ class AdministrationCheckConfigController extends AbstractOscarController 'db_model_error' => $db_model_error, 'db_database_error' => $db_database_error, 'db_model_updates' => $db_model_updates, 'db_available_new_migrations' => $db_available_new_migrations, 'files' => $files, 'mailer_error' => $mailer_error, 'mailer_url_absolute' => $mailer_url_absolute, Loading module/Oscar/view/oscar/administration-check-config/check-config-home.phtml +17 −1 Original line number Diff line number Diff line Loading @@ -75,7 +75,23 @@ <?php endif; ?> <ul> <li>Modèle de donnée <?php if(!$db_model_error): ?><b style="color: green;">OK</b><?php else: ?><b style="color: red;">Erreur</b><?php endif; ?></li> <li>Modèle de donnée <?php if(!$db_model_error && count($db_available_new_migrations) == 0): ?><b style="color: green;">OK</b><?php else: ?><b style="color: red;">Erreur</b><?php endif; ?></li> </ul> <?php if(count($db_available_new_migrations->getItems()) > 0): ?> <article class="card xsc repport repport-error"> <i class="icon-repport"></i> <?= count($db_available_new_migrations->getItems()) ?> migration(s) en attente. <b>EXECUTER vendor/bin/doctrine-migrations migrate</b> <br /> <br /> <p>Détail des migrations qui seront réalisées par la commande :</p> <ul> <?php foreach( $db_available_new_migrations->getItems() as $migration ): ?> <li><?= $migration->getVersion() ?></li> <?php endforeach; ?> </ul> </article> <?php endif; ?> <ul> <li>Base de données <?php if(!$db_database_error): ?> <b style="color: green;">OK</b> <?php else: ?> Loading Loading
config/autoload/global.php +3 −8 Original line number Diff line number Diff line Loading @@ -411,17 +411,12 @@ return array( // On ne "cache" la table doctrine_migration_versions que pour // - la commande doctrine-module orm:schema-tool:update // - la commande check:config // - la page admin qui vérifie la configuration : /administration/check_config // parce que sinon, si les commandes de doctrine migration ne voient plus cette table // alors elles essaient de la recréer à chaque fois et elles échouent car la table existe déjà. if ((!isset($_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_URI'] !== "/administration/check_config") && (!isset($_SERVER['argv']) if (!isset($_SERVER['argv']) || !is_array($_SERVER['argv']) || (!in_array('check:config', $_SERVER['argv'], true) && (!in_array('vendor/bin/doctrine-module', $_SERVER['argv'], true) || !in_array('orm:schema-tool:update', $_SERVER['argv'], true))))) { || !in_array('vendor/bin/doctrine-module', $_SERVER['argv'], true) || !in_array('orm:schema-tool:update', $_SERVER['argv'], true)) { return true; } Loading
module/Oscar/src/Oscar/Command/OscarCheckConfigCommand.php +18 −0 Original line number Diff line number Diff line Loading @@ -283,6 +283,21 @@ class OscarCheckConfigCommand extends OscarCommandAbstract $io->writeln("<green>OK</green>"); } $io->write(" - Migrations "); $doctrine_migration_config = new \Doctrine\Migrations\Configuration\Migration\PhpFile(__DIR__ . '/../../../../../migrations.php'); $doctrine_migration_dependency_factory = \Doctrine\Migrations\DependencyFactory::fromEntityManager($doctrine_migration_config, new \Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager($em)); $db_available_new_migrations = $doctrine_migration_dependency_factory->getMigrationStatusCalculator()->getNewMigrations(); if (count($db_available_new_migrations->getItems()) > 0) { $io->warning("Obsolète. Migrations en attente :"); foreach ($db_available_new_migrations->getItems() as $db_available_new_migration) { $io->warning(" - " . $db_available_new_migration->getVersion()); } $io->error("EXECUTER vendor/bin/doctrine-migrations migrate"); return self::FAILURE; } else { $io->writeln("<green>OK</green>"); } $validator = new SchemaValidator($em); $errors = $validator->validateMapping(); Loading @@ -290,6 +305,9 @@ class OscarCheckConfigCommand extends OscarCommandAbstract $tool = new \Doctrine\ORM\Tools\SchemaTool($em); $saveMode = false; $db_model_updates = $tool->getUpdateSchemaSql($classes, $saveMode); $db_model_updates = array_filter($db_model_updates, static function ($element) { return $element !== "DROP TABLE doctrine_migration_versions"; }); if (count($db_model_updates) > 0) { $errors[] = 'Modèle de donnée obsolète'; } Loading
module/Oscar/src/Oscar/Controller/AdministrationCheckConfigController.php +21 −10 Original line number Diff line number Diff line Loading @@ -109,6 +109,7 @@ class AdministrationCheckConfigController extends AbstractOscarController $db_model_error = NULL; $db_database_error = NULL; $db_model_updates = []; $db_available_new_migrations = []; // ERREURS dans le SCHEMA try { Loading @@ -133,14 +134,23 @@ class AdministrationCheckConfigController extends AbstractOscarController } // $cmf = $this->getEntityManager()->getMetadataFactory(); // $classes = $cmf->getAllMetadata(); // // $tool = new \Doctrine\ORM\Tools\SchemaTool($this->getEntityManager()); // $saveMode = false; // $db_model_updates = $tool->getUpdateSchemaSql($classes, $saveMode); // // $db_model_updates = array_filter($db_model_updates, static function ($element) { // return $element !== "DROP TABLE doctrine_migration_versions"; // }); // if (count($db_model_updates) > 0) { // $db_model_error = 'EXECUTER : php vendor/bin/doctrine-module orm:schema-tool:update --force'; // } $doctrine_migration_config = new \Doctrine\Migrations\Configuration\Migration\PhpFile(__DIR__ . '/../../../../../migrations.php'); $doctrine_migration_dependency_factory = \Doctrine\Migrations\DependencyFactory::fromEntityManager($doctrine_migration_config, new \Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager($this->getEntityManager())); $db_available_new_migrations = $doctrine_migration_dependency_factory->getMigrationStatusCalculator()->getNewMigrations(); } catch (\Exception $e) { $db_model_error = "ERROR VALIDATION SCHEMA : " . $e->getMessage(); $db_database_error = "non testé"; Loading Loading @@ -358,6 +368,7 @@ class AdministrationCheckConfigController extends AbstractOscarController 'db_model_error' => $db_model_error, 'db_database_error' => $db_database_error, 'db_model_updates' => $db_model_updates, 'db_available_new_migrations' => $db_available_new_migrations, 'files' => $files, 'mailer_error' => $mailer_error, 'mailer_url_absolute' => $mailer_url_absolute, Loading
module/Oscar/view/oscar/administration-check-config/check-config-home.phtml +17 −1 Original line number Diff line number Diff line Loading @@ -75,7 +75,23 @@ <?php endif; ?> <ul> <li>Modèle de donnée <?php if(!$db_model_error): ?><b style="color: green;">OK</b><?php else: ?><b style="color: red;">Erreur</b><?php endif; ?></li> <li>Modèle de donnée <?php if(!$db_model_error && count($db_available_new_migrations) == 0): ?><b style="color: green;">OK</b><?php else: ?><b style="color: red;">Erreur</b><?php endif; ?></li> </ul> <?php if(count($db_available_new_migrations->getItems()) > 0): ?> <article class="card xsc repport repport-error"> <i class="icon-repport"></i> <?= count($db_available_new_migrations->getItems()) ?> migration(s) en attente. <b>EXECUTER vendor/bin/doctrine-migrations migrate</b> <br /> <br /> <p>Détail des migrations qui seront réalisées par la commande :</p> <ul> <?php foreach( $db_available_new_migrations->getItems() as $migration ): ?> <li><?= $migration->getVersion() ?></li> <?php endforeach; ?> </ul> </article> <?php endif; ?> <ul> <li>Base de données <?php if(!$db_database_error): ?> <b style="color: green;">OK</b> <?php else: ?> Loading