. */ /* */ /*************************************************************************************/ namespace Thelia\Command; use Propel\Runtime\Propel; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Thelia\Install\Database; /** * Class ReloadDatabasesCommand * @package Thelia\Command * @author Manuel Raynaud */ class ReloadDatabaseCommand extends BaseModuleGenerate { public function configure() { $this ->setName("thelia:dev:reloadDB") ->setDescription("erase current database and create new one") /* ->addOption( "load-fixtures", null, InputOption::VALUE_NONE, "load fixtures in databases" )*/ ; } public function execute(InputInterface $input, OutputInterface $output) { $connection = Propel::getConnection(\Thelia\Model\Map\ProductTableMap::DATABASE_NAME); $connection = $connection->getWrappedConnection(); $tables = $connection->query("SHOW TABLES"); $connection->query("SET FOREIGN_KEY_CHECKS = 0"); foreach($tables as $table) { $connection->query(sprintf("DROP TABLE `%s`", $table[0])); } $connection->query("SET FOREIGN_KEY_CHECKS = 1"); $database = new Database($connection); $output->writeln(array( '', 'starting reloaded database, please wait' )); $database->insertSql(); $output->writeln(array( '', 'Database reloaded with success', '' )); } }