diff options
author | Victor Dubiniuk <victor.dubiniuk@gmail.com> | 2015-06-23 18:28:29 +0300 |
---|---|---|
committer | Victor Dubiniuk <victor.dubiniuk@gmail.com> | 2015-06-27 00:03:27 +0300 |
commit | ed1565e18c86f1d9847a42c76951e82004cfddf0 (patch) | |
tree | 979e000ac7223e55b214c4b9f538586c928badd6 | |
parent | c1bed643a0698d8c5027e4c7dd54d9198e915e72 (diff) | |
download | nextcloud-server-ed1565e18c86f1d9847a42c76951e82004cfddf0.tar.gz nextcloud-server-ed1565e18c86f1d9847a42c76951e82004cfddf0.zip |
Oracle-specific workaround for adding a column with not-null default value
-rw-r--r-- | apps/files_trashbin/appinfo/preupdate.php | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/apps/files_trashbin/appinfo/preupdate.php b/apps/files_trashbin/appinfo/preupdate.php new file mode 100644 index 00000000000..fc3b1c77008 --- /dev/null +++ b/apps/files_trashbin/appinfo/preupdate.php @@ -0,0 +1,21 @@ +<?php + +$installedVersion=OCP\Config::getAppValue('files_trashbin', 'installed_version'); +if (version_compare($installedVersion, '0.5', '<=')) { + $connection = OC_DB::getConnection(); + $platform = $connection->getDatabasePlatform(); + if ($platform->getName() === 'oracle') { + try { + $connection->beginTransaction(); + $sql1 = 'ALTER TABLE `*PREFIX*files_trash` ADD `auto_id` NUMBER(10) DEFAULT NULL'; + \OC_DB::executeAudited($sql1, array()); + $sql2 = 'CREATE SEQUENCE `*PREFIX*files_trash_seq` start with 1 increment by 1 nomaxvalue'; + \OC_DB::executeAudited($sql2, array()); + $sql3 = 'UPDATE `*PREFIX*files_trash` SET `auto_id` = `*PREFIX*files_trash_seq`.nextval'; + \OC_DB::executeAudited($sql3, array()); + $connection->commit(); + } catch (\DatabaseException $e) { + \OCP\Util::writeLog('files_trashbin', "Oracle upgrade fixup failed: " . $e->getMessage(), \OCP\Util::WARN); + } + } +} |