From 6e1881dbe42dbd7f3c7c2afdc446fe6fc5d46e87 Mon Sep 17 00:00:00 2001 From: Thomas Müller Date: Thu, 17 Oct 2013 12:51:30 +0200 Subject: new console command to generate sql migration scripts --- core/command/db/generatechangescript.php | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 core/command/db/generatechangescript.php (limited to 'core/command/db') diff --git a/core/command/db/generatechangescript.php b/core/command/db/generatechangescript.php new file mode 100644 index 00000000000..f971124cfdc --- /dev/null +++ b/core/command/db/generatechangescript.php @@ -0,0 +1,45 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Command\Db; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class GenerateChangeScript extends Command { + protected function configure() { + $this + ->setName('db:generate-change-script') + ->setDescription('generates the change script from the current connected db to db_structure.xml') + ->addArgument( + 'schema-xml', + InputArgument::OPTIONAL, + 'the schema xml to be used as target schema', + \OC::$SERVERROOT . '/db_structure.xml' + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) { + + $file = $input->getArgument('schema-xml'); + + $schemaManager = new \OC\DB\MDB2SchemaManager(\OC_DB::getConnection()); + + try { + $result = $schemaManager->updateDbFromStructure($file, true); + $output->writeln($result); + } catch (\Exception $e) { + $output->writeln('Failed to update database structure ('.$e.')'); + } + + } +} -- cgit v1.2.3