/** * @param Config $config * @param Connection $db * @param OutputInterface $output * @throws \Doctrine\DBAL\DBALException */ public function dump(Config $config, Connection $db, OutputInterface $output) { $dumper = new Dumper($output); $dumper->exportAsUTF8(); $dumper->disableForeignKeys(); $platform = $db->getDatabasePlatform(); $fetchTablesResult = $db->query($platform->getListTablesSQL()); while ($tableName = $fetchTablesResult->fetchColumn(0)) { $tableConfig = $config->findTable($tableName); if (null === $tableConfig) { continue; } if ($tableConfig->isSchemaDumpRequired()) { $dumper->dumpSchema($tableName, $db, $tableConfig->keepAutoIncrement()); if ($tableConfig->isDataDumpRequired()) { $dumper->dumpData($tableName, $tableConfig, $db); } } } $dumper->enableForeignKeys(); }