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 . ')'); } }
public function testAutoIncrement() { $connection = \OC_DB::getConnection(); if ($connection->getDatabasePlatform() instanceof OraclePlatform) { $this->markTestSkipped('Adding auto increment columns in Oracle is not supported.'); } $manager = new \OC\DB\MDB2SchemaManager($connection); $manager->createDbFromStructure(__DIR__ . '/ts-autoincrement-before.xml'); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc')); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc')); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123')); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123')); $manager->updateDbFromStructure(__DIR__ . '/ts-autoincrement-after.xml'); $this->assertTrue(true); }
public function testAutoIncrement() { if (\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite') === 'oci') { $this->markTestSkipped('Adding auto increment columns in Oracle is not supported.'); } $connection = \OC_DB::getConnection(); $manager = new \OC\DB\MDB2SchemaManager($connection); $manager->createDbFromStructure(__DIR__ . '/ts-autoincrement-before.xml'); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc')); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc')); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123')); $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123')); $manager->updateDbFromStructure(__DIR__ . '/ts-autoincrement-after.xml'); $this->assertTrue(true); }
public function testNonOCTables() { $manager = new \OC\DB\MDB2SchemaManager($this->connection); $manager->updateDbFromStructure(__DIR__ . '/testschema.xml'); $this->assertTrue(true); }