addOption('dump-sql', null, InputOption::VALUE_NONE, 'Instead of trying to apply generated SQLs into EntityManager Storage Connection, output them.'); } protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); $schemaTool = new SchemaTool($this->entityManager); $dumpSql = $input->getOption('dump-sql') === true; $ignore = $schemaTool->getCreateSchemaSql([]); $sqls = $schemaTool->getCreateSchemaSql([ $this->entityManager->getClassMetadata(Broadcast::class), $this->entityManager->getClassMetadata(Campaign::class), $this->entityManager->getClassMetadata(ConfirmationToken::class), $this->entityManager->getClassMetadata(Mailing::class), $this->entityManager->getClassMetadata(MailingList::class), $this->entityManager->getClassMetadata(Registration::class), $this->entityManager->getClassMetadata(StatHit::class), $this->entityManager->getClassMetadata(User::class), ]); $sqls = array_diff($sqls, $ignore); if ($dumpSql) { foreach ($sqls as $sql) { $io->writeln($sql); } return parent::SUCCESS; } foreach ($sqls as $sql) { $this->entityManager->getConnection()->executeQuery($sql); } $io->info('Tables created'); return parent::SUCCESS; } }