add connection option for commands: build, sql:build, migration:generate-diff
This commit is contained in:
parent
39e5782a93
commit
a8bb6a2a8b
|
@ -60,6 +60,12 @@ abstract class AbstractCommand extends ContainerAwareCommand
|
|||
*/
|
||||
private $alreadyWroteConnection = false;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var InputInterface
|
||||
*/
|
||||
protected $input;
|
||||
|
||||
/**
|
||||
* Return the package prefix for a given bundle.
|
||||
*
|
||||
|
@ -90,6 +96,8 @@ abstract class AbstractCommand extends ContainerAwareCommand
|
|||
{
|
||||
parent::initialize($input, $output);
|
||||
|
||||
$this->input = $input;
|
||||
|
||||
$this->checkConfiguration();
|
||||
|
||||
if ($input->hasArgument('bundle') && '@' === substr($input->getArgument('bundle'), 0, 1)) {
|
||||
|
@ -227,6 +235,13 @@ abstract class AbstractCommand extends ContainerAwareCommand
|
|||
);
|
||||
}
|
||||
|
||||
if ($this->input && $this->input->hasOption('connection') && $this->input->getOption('connection')
|
||||
&& $database['name'] != $this->input->getOption('connection')) {
|
||||
//we skip this schema because the connection name doesn't match the input value
|
||||
$filesystem->remove($file);
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($database->table as $table) {
|
||||
if (isset($table['package'])) {
|
||||
$table['package'] = $table['package'];
|
||||
|
|
|
@ -14,6 +14,7 @@ use Propel\PropelBundle\Command\AbstractCommand;
|
|||
use Propel\PropelBundle\Command\ModelBuildCommand;
|
||||
use Propel\PropelBundle\Command\SqlBuildCommand;
|
||||
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
@ -51,26 +52,31 @@ class BuildCommand extends AbstractCommand
|
|||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
if (!$input->getOption('sql')) {
|
||||
$modelCommand = new ModelBuildCommand();
|
||||
$modelCommand->setApplication($this->getApplication());
|
||||
$modelCommand->execute($input, $output);
|
||||
$in = new ArrayInput(array(
|
||||
'command' => 'propel:model:build',
|
||||
'--connection' => $input->getOption('connection')
|
||||
));
|
||||
$modelCommand = $this->getApplication()->find('propel:model:build');
|
||||
$res = $modelCommand->run($in, $output);
|
||||
}
|
||||
|
||||
if (!$input->getOption('classes')) {
|
||||
$sqlCommand = new SqlBuildCommand();
|
||||
$sqlCommand->setApplication($this->getApplication());
|
||||
$sqlCommand->execute($input, $output);
|
||||
$in = new ArrayInput(array(
|
||||
'command' => 'propel:build:sql',
|
||||
'--connection' => $input->getOption('connection'),
|
||||
));
|
||||
$sqlCommand = $this->getApplication()->find('propel:sql:build');
|
||||
$sqlCommand->run($in, $output);
|
||||
}
|
||||
|
||||
if ($input->getOption('insert-sql')) {
|
||||
$insertCommand = new SqlInsertCommand();
|
||||
$insertCommand->setApplication($this->getApplication());
|
||||
|
||||
// By-pass the '--force' required option
|
||||
$this->addOption('force', '', InputOption::VALUE_NONE, '');
|
||||
$input->setOption('force', true);
|
||||
|
||||
$insertCommand->execute($input, $output);
|
||||
$in = new ArrayInput(array(
|
||||
'command' => 'propel:sql:insert',
|
||||
'--connection' => $input->getOption('connection'),
|
||||
'--force' => true,
|
||||
));
|
||||
$insertCommand = $this->getApplication()->find('propel:sql:insert');
|
||||
$insertCommand->run($in, $output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace Propel\PropelBundle\Command;
|
|||
|
||||
use Propel\PropelBundle\Command\AbstractCommand;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
|
@ -28,6 +29,7 @@ class MigrationGenerateDiffCommand extends AbstractCommand
|
|||
{
|
||||
$this
|
||||
->setDescription('Generates SQL diff between the XML schemas and the current database structure')
|
||||
->addOption('connection', null, InputOption::VALUE_OPTIONAL, 'Set this parameter to define a connection to use')
|
||||
->setHelp(<<<EOT
|
||||
The <info>propel:migration:generate-diff</info> command compares the current database structure and the available schemas. If there is a difference, it creates a migration file.
|
||||
|
||||
|
|
|
@ -11,10 +11,9 @@
|
|||
namespace Propel\PropelBundle\Command;
|
||||
|
||||
use Propel\PropelBundle\Command\AbstractCommand;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\Output;
|
||||
|
||||
/**
|
||||
* MigrationMigrateCommand.
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace Propel\PropelBundle\Command;
|
|||
use Propel\PropelBundle\Command\AbstractCommand;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
|
@ -31,6 +32,7 @@ class ModelBuildCommand extends AbstractCommand
|
|||
$this
|
||||
->setDescription('Build the Propel Object Model classes based on XML schemas')
|
||||
->addArgument('bundle', InputArgument::OPTIONAL, 'The bundle to generate model classes from')
|
||||
->addOption('connection', null, InputOption::VALUE_OPTIONAL, 'Set this parameter to define a connection to use')
|
||||
->setHelp(<<<EOT
|
||||
The <info>%command.name%</info> command builds the Propel runtime model classes (ActiveRecord, Query, Peer, and TableMap classes) based on the XML schemas defined in all Bundles.
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
namespace Propel\PropelBundle\Command;
|
||||
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\Output;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
|
@ -39,6 +40,7 @@ The <info>%command.name%</info> command builds the SQL table generation code bas
|
|||
<info>php %command.full_name%</info>
|
||||
EOT
|
||||
)
|
||||
->addOption('connection', null, InputOption::VALUE_OPTIONAL, 'Set this parameter to define a connection to use')
|
||||
->setName('propel:sql:build')
|
||||
;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue