Files
Phraseanet/bin/doctrine
2012-02-28 11:50:42 +01:00

91 lines
2.9 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2010 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
*
* @package
* @package KonsoleKomander
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link www.phraseanet.com
*/
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Application;
use Alchemy\Phrasea;
$Core = require_once dirname(__FILE__) . '/../lib/bootstrap.php';
bootstrap::register_autoloads();
try
{
$configuration = \Alchemy\Phrasea\Core\Configuration::build();
$serviceName = $configuration->getOrm();
$confService = $configuration->getService($serviceName);
if ($confService->get("type") !== 'Orm\\Doctrine')
{
exit(sprintf("Doctrine is not declared as your ORM but %s is", $confService->get("type")));
}
$ormService = \Alchemy\Phrasea\Core\Service\Builder::create(
$Core
, $serviceName
, $confService
);
$em = $ormService->getDriver();
/* @var $em \Doctrine\ORM\EntityManager */
$app = new Application("Phraseanet Doctrine Console");
$helpers = array(
'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
);
$helperSet = $app->getHelperSet();
foreach ($helpers as $name => $helper)
{
$helperSet->set($helper, $name);
}
$app->addCommands(array(
// DBAL Commands
new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(),
new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(),
// ORM Commands
new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(),
new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(),
new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(),
new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(),
new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(),
new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(),
new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(),
new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(),
new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(),
new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(),
new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(),
new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(),
));
$app->run();
}
catch (Exception $e)
{
echo "an error occured : " . $e->getMessage();
}