protected function configure()
{
$help = <<<'HELP'
<comment>TYPE OPTIONS</comment>
<info>QUICK</info>
Do not scan the rows to check for incorrect links.
Applies to InnoDB and MyISAM tables and views.
<info>FAST</info>
Check only tables that have not been closed properly.
Applies only to MyISAM tables and views; ignored for InnoDB.
<info>CHANGED</info>
Check only tables that have been changed since the last check or that
have not been closed properly. Applies only to MyISAM tables and views;
ignored for InnoDB.
<info>MEDIUM</info>
Scan rows to verify that deleted links are valid.
This also calculates a key checksum for the rows and verifies this with a
calculated checksum for the keys. Applies only to MyISAM tables and views;
ignored for InnoDB.
<info>EXTENDED</info>
Do a full key lookup for all keys for each row. This ensures that the table
is 100% consistent, but takes a long time.
Applies only to MyISAM tables and views; ignored for InnoDB.
<comment>InnoDB</comment>
InnoDB tables will be optimized with the ALTER TABLE ... ENGINE=InnoDB statement.
The options above do not apply to them.
HELP;
$this->setName('db:maintain:check-tables')->setDescription('Check database tables')->addOption('type', null, InputOption::VALUE_OPTIONAL, 'Check type (one of QUICK, FAST, MEDIUM, EXTENDED, CHANGED)', 'MEDIUM')->addOption('repair', null, InputOption::VALUE_NONE, 'Repair tables (only MyISAM)')->addOption('table', null, InputOption::VALUE_OPTIONAL, 'Process only given table (wildcards are supported)')->addOption('format', null, InputOption::VALUE_OPTIONAL, 'Output Format. One of [' . implode(',', RendererFactory::getFormats()) . ']')->setHelp($help);
}