diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-10-17 12:51:30 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-10-17 12:51:30 +0200 |
commit | 6e1881dbe42dbd7f3c7c2afdc446fe6fc5d46e87 (patch) | |
tree | 0811cfbff6d3461b6b0748ebc4f109a668e7701b /core/command | |
parent | fe1df961c14079313ff7fed591283e0b9e199f38 (diff) | |
download | nextcloud-server-6e1881dbe42dbd7f3c7c2afdc446fe6fc5d46e87.tar.gz nextcloud-server-6e1881dbe42dbd7f3c7c2afdc446fe6fc5d46e87.zip |
new console command to generate sql migration scripts
Diffstat (limited to 'core/command')
-rw-r--r-- | core/command/db/generatechangescript.php | 45 |
1 files changed, 45 insertions, 0 deletions
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 @@ +<?php +/** + * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> + * 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.')'); + } + + } +} |