/** * Update the database schema * * Updates the database schema without using existing migrations. * * It will not drop foreign keys, sequences and tables, unless <u>--unsafe-mode</u> is set. * * @param boolean $unsafeMode If set, foreign keys, sequences and tables can potentially be dropped. * @param string $output A file to write SQL to, instead of executing the update directly * @return void * @see typo3.flow:doctrine:create * @see typo3.flow:doctrine:migrate */ public function updateCommand($unsafeMode = false, $output = null) { if (!$this->isDatabaseConfigured()) { $this->outputLine('Database schema update has been SKIPPED, the driver and host backend options are not set in /Configuration/Settings.yaml.'); $this->quit(1); } $this->doctrineService->updateSchema(!$unsafeMode, $output); if ($output === null) { $this->outputLine('Executed a database schema update.'); } else { $this->outputLine('Wrote schema update SQL to file "' . $output . '".'); } }
/** * Update the database schema * * Updates the database schema without using existing migrations. * * It will not drop foreign keys, sequences and tables, unless <u>--unsafe-mode</u> is set. * * @param boolean $unsafeMode If set, foreign keys, sequences and tables can potentially be dropped. * @param string $output A file to write SQL to, instead of executing the update directly * @return void * @see typo3.flow:doctrine:create * @see typo3.flow:doctrine:migrate */ public function updateCommand($unsafeMode = FALSE, $output = NULL) { // "driver" is used only for Doctrine, thus we (mis-)use it here // additionally, when no path is set, skip this step, assuming no DB is needed if ($this->settings['backendOptions']['driver'] !== NULL && $this->settings['backendOptions']['host'] !== NULL) { $this->doctrineService->updateSchema(!$unsafeMode, $output); if ($output === NULL) { $this->outputLine('Executed a database schema update.'); } else { $this->outputLine('Wrote schema update SQL to file "' . $output . '".'); } } else { $this->outputLine('Database schema update has been SKIPPED, the driver and host backend options are not set in /Configuration/Settings.yaml.'); $this->quit(1); } }