protected function executeSchemaCommand(InputInterface $input, OutputInterface $output, SchemaTool $schemaTool, array $metadatas) { if ($input->getOption('dump-sql') === true) { $sqls = $schemaTool->getDropSchemaSql($metadatas); $output->write(implode(';' . PHP_EOL, $sqls) . PHP_EOL); } else { $output->write('Dropping database schema...' . PHP_EOL); $schemaTool->dropSchema($metadatas); $output->write('Database schema dropped successfully!' . PHP_EOL); } }
protected function executeSchemaCommand(InputInterface $input, OutputInterface $output, SchemaTool $schemaTool, array $metadatas) { if ($input->getOption('dump-sql') === true) { $sqls = $schemaTool->getDropSchemaSql($metadatas); $output->write(implode(';' . PHP_EOL, $sqls) . PHP_EOL); } else { if ($input->getOption('force') === true) { $output->write('Dropping database schema...' . PHP_EOL); $schemaTool->dropSchema($metadatas); $output->write('Database schema dropped successfully!' . PHP_EOL); } else { $sqls = $schemaTool->getDropSchemaSql($metadatas); if (count($sqls)) { $output->write('Schema-Tool would execute ' . count($sqls) . ' queries to drop the database.' . PHP_EOL); $output->write('Please run the operation with --force to execute these queries or use --dump-sql to see them.' . PHP_EOL); } else { $output->write('Nothing to drop. The database is empty!' . PHP_EOL); } } } }
/** * @inheritdoc */ public function run() { $arguments = $this->getArguments(); $printer = $this->getPrinter(); $isCreate = isset($arguments['create']) && $arguments['create']; $isDrop = isset($arguments['drop']) && $arguments['drop']; $isUpdate = isset($arguments['update']) && $arguments['update']; $isCompleteUpdate = isset($arguments['complete-update']) && $arguments['complete-update']; $em = $this->getConfiguration()->getAttribute('em'); $cmf = $em->getMetadataFactory(); $classes = $cmf->getAllMetadata(); if (empty($classes)) { $printer->writeln('No classes to process.', 'INFO'); return; } $tool = new SchemaTool($em); if ($isDrop) { if (isset($arguments['dump-sql'])) { foreach ($tool->getDropSchemaSql($classes) as $sql) { $printer->writeln($sql . ";"); } } else { $printer->writeln('Dropping database schema...', 'INFO'); $tool->dropSchema($classes); $printer->writeln('Database schema dropped successfully.', 'INFO'); } } if ($isCreate) { if (isset($arguments['dump-sql'])) { foreach ($tool->getCreateSchemaSql($classes) as $sql) { $printer->writeln($sql . ";"); } } else { $printer->writeln('Creating database schema...', 'INFO'); $tool->createSchema($classes); $printer->writeln('Database schema created successfully.', 'INFO'); } } if ($isUpdate || $isCompleteUpdate) { $saveMode = $isUpdate ? true : false; if (isset($arguments['dump-sql'])) { foreach ($tool->getUpdateSchemaSql($classes, $saveMode) as $sql) { $printer->writeln($sql . ";"); } } else { $printer->writeln('Updating database schema...', 'INFO'); $tool->updateSchema($classes, $saveMode); $printer->writeln('Database schema updated successfully.', 'INFO'); } } }