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
This commit is contained in:
Thomas Müller 2014-04-17 16:12:48 +02:00
parent c47d4ebbac
commit fe8bae31dc
8 changed files with 109 additions and 3 deletions

View file

@ -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>

View file

@ -1 +1 @@
0.6
0.6.1

View file

@ -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>
</database>

View file

@ -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;
}

View file

@ -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
*/

View file

@ -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);
}
}

View file

@ -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>

View file

@ -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>