diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2014-04-17 16:12:48 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2014-06-06 13:33:56 +0200 |
commit | fe8bae31dc80ac832323fa8d9a75fd4b543d36e0 (patch) | |
tree | fedada14b0c6e7ad32fa588f438aa0e1cf243045 | |
parent | c47d4ebbac7885ad91cf56355bd6aa09318ff8e8 (diff) | |
download | nextcloud-server-fe8bae31dc80ac832323fa8d9a75fd4b543d36e0.tar.gz nextcloud-server-fe8bae31dc80ac832323fa8d9a75fd4b543d36e0.zip |
adding PK to table encryption
adding auto increment/PK to table files_trash
adding PK to table ldap_user_mapping and ldap_group_members
adding PK to table ldap_group_mapping
truncate permissions table to allow smooth creation of primary key
adding unit test for creating an auto increment column on a table which already contains data
remove unneeded table files_trashsizes
fix unit test
no need to truncate *PREFIX*permissions
On Oracle adding auto increment columns is not working out of the box - Oracle migrations are to be done manually
-rw-r--r-- | apps/files_trashbin/appinfo/database.xml | 9 | ||||
-rw-r--r-- | apps/files_trashbin/appinfo/version | 2 | ||||
-rw-r--r-- | apps/user_ldap/appinfo/database.xml | 5 | ||||
-rw-r--r-- | lib/private/db/mdb2schemamanager.php | 2 | ||||
-rw-r--r-- | lib/private/updater.php | 1 | ||||
-rw-r--r-- | tests/lib/db/mdb2schemamanager.php | 37 | ||||
-rw-r--r-- | tests/lib/db/ts-autoincrement-after.xml | 32 | ||||
-rw-r--r-- | tests/lib/db/ts-autoincrement-before.xml | 24 |
8 files changed, 109 insertions, 3 deletions
diff --git a/apps/files_trashbin/appinfo/database.xml b/apps/files_trashbin/appinfo/database.xml index a6ba242c1cf..2944a31b02d 100644 --- a/apps/files_trashbin/appinfo/database.xml +++ b/apps/files_trashbin/appinfo/database.xml @@ -13,6 +13,15 @@ <declaration> + <field> + <name>auto_id</name> + <type>integer</type> + <default>0</default> + <notnull>true</notnull> + <autoincrement>1</autoincrement> + <length>4</length> + </field> + <field> <name>id</name> <type>text</type> diff --git a/apps/files_trashbin/appinfo/version b/apps/files_trashbin/appinfo/version index 5a2a5806df6..ee6cdce3c29 100644 --- a/apps/files_trashbin/appinfo/version +++ b/apps/files_trashbin/appinfo/version @@ -1 +1 @@ -0.6 +0.6.1 diff --git a/apps/user_ldap/appinfo/database.xml b/apps/user_ldap/appinfo/database.xml index 812e450dde7..4875a70f852 100644 --- a/apps/user_ldap/appinfo/database.xml +++ b/apps/user_ldap/appinfo/database.xml @@ -46,6 +46,7 @@ <index> <name>owncloud_name_users</name> + <primary>true</primary> <unique>true</unique> <field> <name>owncloud_name</name> @@ -90,6 +91,7 @@ <index> <name>ldap_dn_groups</name> <unique>true</unique> + <primary>true</primary> <field> <name>ldap_dn</name> </field> @@ -132,6 +134,7 @@ <index> <name>ldap_group_members_index</name> <unique>true</unique> + <primary>true</primary> <field> <name>owncloudname</name> </field> @@ -141,4 +144,4 @@ </table> -</database>
\ No newline at end of file +</database> diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php index 734ba18d1ac..ee3d53b576a 100644 --- a/lib/private/db/mdb2schemamanager.php +++ b/lib/private/db/mdb2schemamanager.php @@ -109,7 +109,7 @@ class MDB2SchemaManager { */ public function simulateUpdateDbFromStructure($file) { $toSchema = $this->readSchemaFromFile($file); - $migrator = $this->getMigrator()->checkMigrate($toSchema); + $this->getMigrator()->checkMigrate($toSchema); return true; } diff --git a/lib/private/updater.php b/lib/private/updater.php index 58a4086c80f..9cc1b3322eb 100644 --- a/lib/private/updater.php +++ b/lib/private/updater.php @@ -150,6 +150,7 @@ class Updater extends BasicEmitter { // This is added to prevent host header poisoning \OC_Config::setValue('trusted_domains', \OC_Config::getValue('trusted_domains', array(\OC_Request::serverHost()))); } + /* * STOP CONFIG CHANGES FOR OLDER VERSIONS */ diff --git a/tests/lib/db/mdb2schemamanager.php b/tests/lib/db/mdb2schemamanager.php new file mode 100644 index 00000000000..51e3c7002f4 --- /dev/null +++ b/tests/lib/db/mdb2schemamanager.php @@ -0,0 +1,37 @@ +<?php + +/** + * Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\DB; + +class MDB2SchemaManager extends \PHPUnit_Framework_TestCase { + + public function tearDown() { + \OC_DB::dropTable('table'); + } + + 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); + } + +} diff --git a/tests/lib/db/ts-autoincrement-after.xml b/tests/lib/db/ts-autoincrement-after.xml new file mode 100644 index 00000000000..d4445f1e247 --- /dev/null +++ b/tests/lib/db/ts-autoincrement-after.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8" ?> +<database> + + <name>*dbname*</name> + <create>true</create> + <overwrite>false</overwrite> + + <charset>utf8</charset> + + <table> + + <name>*dbprefix*table</name> + + <declaration> + <field> + <name>auto_id</name> + <type>integer</type> + <default>0</default> + <notnull>true</notnull> + <autoincrement>1</autoincrement> + <length>4</length> + </field> + <field> + <name>textfield</name> + <type>text</type> + <default>foo</default> + <notnull>true</notnull> + <length>32</length> + </field> + </declaration> + </table> +</database> diff --git a/tests/lib/db/ts-autoincrement-before.xml b/tests/lib/db/ts-autoincrement-before.xml new file mode 100644 index 00000000000..412739e9a71 --- /dev/null +++ b/tests/lib/db/ts-autoincrement-before.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" ?> +<database> + + <name>*dbname*</name> + <create>true</create> + <overwrite>false</overwrite> + + <charset>utf8</charset> + + <table> + + <name>*dbprefix*table</name> + + <declaration> + <field> + <name>textfield</name> + <type>text</type> + <default>foo</default> + <notnull>true</notnull> + <length>32</length> + </field> + </declaration> + </table> +</database> |