/**
     * Set up the command.
     *
     * Define the name, options and help text.
     */
    protected function configure()
    {
        parent::configure();
        $this->setName('kaliop:migration:migration')->setDescription('Manually delete migrations from the database table.')->addOption('delete', null, InputOption::VALUE_NONE, "Delete the specified migration.")->addOption('add', null, InputOption::VALUE_NONE, "Add the specified migration definition.")->addOption('skip', null, InputOption::VALUE_NONE, "Mark the specified migration as skipped.")->addOption('no-interaction', 'n', InputOption::VALUE_NONE, "Do not ask any interactive question.")->addArgument('migration', InputArgument::REQUIRED, 'The version to add/skip (filename with full path) or delete (plain migration name).', null)->setHelp(<<<EOT
The <info>kaliop:migration:migration</info> command allows you to manually delete migrations versions from the migration table:

    <info>./ezpublish/console kaliop:migration:migration --delete migration_name</info>

As well as manually adding migrations to the migration table:

    <info>./ezpublish/console kaliop:migration:migration --add /path/to/migration_definition</info>
EOT
);
    }
    /**
     * Set up the command.
     *
     * Define the name, options and help text.
     */
    protected function configure()
    {
        parent::configure();
        $this->setName(self::COMMAND_NAME)->setAliases(array('kaliop:migration:update'))->setDescription('Execute available migration definitions.')->addOption('path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, "The directory or file to load the migration definitions from")->addOption('default-language', null, InputOption::VALUE_REQUIRED, "Default language code that will be used if no language is provided in migration steps")->addOption('ignore-failures', null, InputOption::VALUE_NONE, "Keep executing migrations even if one fails")->addOption('clear-cache', null, InputOption::VALUE_NONE, "Clear the cache after the command finishes")->addOption('no-interaction', 'n', InputOption::VALUE_NONE, "Do not ask any interactive question")->addOption('no-transactions', 'u', InputOption::VALUE_NONE, "Do not use a repository transaction to wrap each migration. Unsafe, but needed for legacy slot handlers")->addOption('separate-process', 'p', InputOption::VALUE_NONE, "Use a separate php process to run each migration. Safe if your migration leak memory. A tad slower")->addOption('child', null, InputOption::VALUE_NONE, "*DO NOT USE* Internal option for when forking separate processes")->setHelp(<<<EOT
The <info>kaliop:migration:migrate</info> command loads and executes migrations:

    <info>./ezpublish/console kaliop:migration:migrate</info>

You can optionally specify the path to migration definitions with <info>--path</info>:

    <info>./ezpublish/console kaliop:migrations:migrate --path=/path/to/bundle/version_directory --path=/path/to/bundle/version_directory/single_migration_file</info>
EOT
);
    }