aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/db/oraclemigrator.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2014-04-11 15:10:09 +0200
committerRobin Appelman <icewind@owncloud.com>2014-06-03 11:18:45 +0200
commita59f6818ebeffa23ad1b66652179f3592bd4931d (patch)
treebe3c9a5ce3cccf1097932c0e6b913aae5129a233 /lib/private/db/oraclemigrator.php
parent4d7045e7015c85030c9b37137955fa09db1f866f (diff)
downloadnextcloud-server-a59f6818ebeffa23ad1b66652179f3592bd4931d.tar.gz
nextcloud-server-a59f6818ebeffa23ad1b66652179f3592bd4931d.zip
Only quote identifiers for oracle during migration
Diffstat (limited to 'lib/private/db/oraclemigrator.php')
-rw-r--r--lib/private/db/oraclemigrator.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/private/db/oraclemigrator.php b/lib/private/db/oraclemigrator.php
new file mode 100644
index 00000000000..5494bcbac30
--- /dev/null
+++ b/lib/private/db/oraclemigrator.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\DB;
+
+use Doctrine\DBAL\Schema\Schema;
+
+class OracleMigrator extends Migrator {
+ /**
+ * @param \Doctrine\DBAL\Schema\Schema $targetSchema
+ * @throws \OC\DB\MigrationException
+ *
+ * Migration testing is skipped for oracle
+ */
+ public function checkMigrate(Schema $targetSchema) {}
+
+ /**
+ * @param Schema $targetSchema
+ * @param \Doctrine\DBAL\Connection $connection
+ * @return \Doctrine\DBAL\Schema\SchemaDiff
+ */
+ protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
+ $schemaDiff = parent::getDiff($targetSchema, $connection);
+
+ // oracle forces us to quote the identifiers
+ foreach ($schemaDiff->changedTables as $tableDiff) {
+ $tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name);
+ foreach ($tableDiff->changedColumns as $column) {
+ $column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName);
+ }
+ }
+
+ return $schemaDiff;
+ }
+}