diff --git a/bin/doctrine b/bin/developer similarity index 75% rename from bin/doctrine rename to bin/developer index 83f4511b84..5e97b7aa1f 100755 --- a/bin/doctrine +++ b/bin/developer @@ -9,9 +9,12 @@ * file that was distributed with this source code. */ +use Alchemy\Phrasea\CLI; +use Alchemy\Phrasea\Core\Version; +use Alchemy\Phrasea\Command\Developer\RegenerateSqliteDb; + use Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper; use Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper; -use Alchemy\Phrasea\CLI; // DBAL Commands use Doctrine\DBAL\Tools\Console\Command\RunSqlCommand; use Doctrine\DBAL\Tools\Console\Command\ImportCommand; @@ -34,7 +37,17 @@ use Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand; require_once __DIR__ . '/../vendor/autoload.php'; try { - $cli = new CLI("Phraseanet Doctrine Console"); + $cli = new CLI(" + ___ ___ _ _ ___ __ __ ___ ___ ___ ____ __ __ __ ___ +( \( _)( )( )( _)( ) / \( ,\( _)( ,) (_ _)/ \ / \( ) / __) + ) ) )) _) \\// ) _) )(__( () )) _/ ) _) ) \ )( ( () )( () ))(__ \__ \ +(___/(___) (__) (___)(____)\__/(_) (___)(_)\_) (__) \__/ \__/(____)(___/ + + Phraseanet Copyright (C) 2004 Alchemy + This program comes with ABSOLUTELY NO WARRANTY. + This is free software, and you are welcome to redistribute it + under certain conditions; type `about:license' for details.\n\n" + . ' Phraseanet Developer Tools ', Version::getName() . ' ' . Version::getNumber()); $helpers = array( 'db' => new ConnectionHelper($cli['EM']->getConnection()), @@ -46,6 +59,8 @@ try { $helperSet->set($helper, $name); } + $cli->command(new RegenerateSqliteDb('phrasea:regenerate-sqlite')); + $cli['console']->addCommands(array( // DBAL Commands new RunSqlCommand(), diff --git a/builder.php b/builder.php index 58ad297548..26170572e1 100755 --- a/builder.php +++ b/builder.php @@ -25,6 +25,11 @@ $finder ->name('.gitmodules') ->name('.gitignore') ->name('check_cs.php') + ->name('bin/behat') + ->name('bin/developer') + ->name('bin/doctrine.php') + ->name('bin/doctrine') + ->name('bin/phpunit') ->name('cleaner.php') ->name('build-env.sh') ->name('phpunit.xml.dist') diff --git a/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php new file mode 100644 index 0000000000..b74efe3af6 --- /dev/null +++ b/lib/Alchemy/Phrasea/Command/Developer/RegenerateSqliteDb.php @@ -0,0 +1,46 @@ +rename($source, $target); + + try { + $dbsParams = $this->container['phraseanet.configuration']->getConnexions(); + $dbParams = $dbsParams['test_connexion']; + + $dbParams['path'] = $source; + + $config = Setup::createYAMLMetadataConfiguration(array(__DIR__ . '/../../../../conf.d/Doctrine'), true); + $em = EntityManager::create($dbParams, $config); + + $metadatas = $em->getMetadataFactory()->getAllMetadata(); + + $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); + + $schemaTool->createSchema($metadatas); + } catch (\Exception $e) { + $fs->rename($target, $source); + throw $e; + } + + $fs->remove($target); + + return 0; + } +}