Browse Source
Merge pull request #21639 from nextcloud/techdebt/noid/move-away-from-database-xml
Merge pull request #21639 from nextcloud/techdebt/noid/move-away-from-database-xml
Move away from database xmlpull/21728/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 492 additions and 587 deletions
-
41apps/federatedfilesharing/appinfo/database.xml
-
2apps/federatedfilesharing/appinfo/info.xml
-
1apps/federatedfilesharing/composer/composer/autoload_classmap.php
-
1apps/federatedfilesharing/composer/composer/autoload_static.php
-
58apps/federatedfilesharing/lib/Migration/Version1010Date20200630191755.php
-
68apps/federation/appinfo/database.xml
-
2apps/federation/appinfo/info.xml
-
1apps/federation/composer/composer/autoload_classmap.php
-
1apps/federation/composer/composer/autoload_static.php
-
83apps/federation/lib/Migration/Version1010Date20200630191302.php
-
225apps/files_external/appinfo/database.xml
-
2apps/files_external/appinfo/info.xml
-
150apps/files_external/lib/Migration/Version1011Date20200630192246.php
-
101apps/files_trashbin/appinfo/database.xml
-
2apps/files_trashbin/appinfo/info.xml
-
1apps/files_trashbin/composer/composer/autoload_classmap.php
-
1apps/files_trashbin/composer/composer/autoload_static.php
-
87apps/files_trashbin/lib/Migration/Version1010Date20200630192639.php
-
147apps/user_ldap/appinfo/database.xml
-
2apps/user_ldap/appinfo/info.xml
-
1apps/user_ldap/composer/composer/autoload_classmap.php
-
1apps/user_ldap/composer/composer/autoload_static.php
-
101apps/user_ldap/lib/Migration/Version1010Date20200630192842.php
@ -1,41 +0,0 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1" ?> |
|||
|
|||
<!-- |
|||
Keep a mapping of the share ID stored in the local oc_share table |
|||
and the share ID stored in the remote servers oc_share table. |
|||
This is needed in order to send updates in both directions between |
|||
the servers (e.g. permissions change, unshare,...) |
|||
--> |
|||
|
|||
<database> |
|||
<name>*dbname*</name> |
|||
<create>true</create> |
|||
<overwrite>false</overwrite> |
|||
<charset>utf8</charset> |
|||
<table> |
|||
<name>*dbprefix*federated_reshares</name> |
|||
<declaration> |
|||
<field> |
|||
<name>share_id</name> |
|||
<type>integer</type> |
|||
<notnull>true</notnull> |
|||
<length>4</length> |
|||
</field> |
|||
<field> |
|||
<name>remote_id</name> |
|||
<type>integer</type> |
|||
<notnull>true</notnull> |
|||
<length>4</length> |
|||
<comments>share ID at the remote server</comments> |
|||
</field> |
|||
<index> |
|||
<name>share_id_index</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>share_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
</declaration> |
|||
</table> |
|||
</database> |
|||
@ -0,0 +1,58 @@ |
|||
<?php |
|||
|
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @author Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
namespace OCA\FederatedFileSharing\Migration; |
|||
|
|||
use Closure; |
|||
use Doctrine\DBAL\Types\Types; |
|||
use OCP\DB\ISchemaWrapper; |
|||
use OCP\Migration\IOutput; |
|||
use OCP\Migration\SimpleMigrationStep; |
|||
|
|||
class Version1010Date20200630191755 extends SimpleMigrationStep { |
|||
/** |
|||
* @param IOutput $output |
|||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
|||
* @param array $options |
|||
* @return null|ISchemaWrapper |
|||
*/ |
|||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { |
|||
/** @var ISchemaWrapper $schema */ |
|||
$schema = $schemaClosure(); |
|||
|
|||
if (!$schema->hasTable('federated_reshares')) { |
|||
$table = $schema->createTable('federated_reshares'); |
|||
$table->addColumn('share_id', Types::INTEGER, [ |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
]); |
|||
$table->addColumn('remote_id', Types::INTEGER, [ |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
]); |
|||
$table->addUniqueIndex(['share_id'], 'share_id_index'); |
|||
} |
|||
return $schema; |
|||
} |
|||
} |
|||
@ -1,68 +0,0 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1" ?> |
|||
<database> |
|||
<name>*dbname*</name> |
|||
<create>true</create> |
|||
<overwrite>false</overwrite> |
|||
<charset>utf8</charset> |
|||
<table> |
|||
<name>*dbprefix*trusted_servers</name> |
|||
<declaration> |
|||
<field> |
|||
<name>id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<length>4</length> |
|||
</field> |
|||
<field> |
|||
<name>url</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>512</length> |
|||
<comments>Url of trusted server</comments> |
|||
</field> |
|||
<field> |
|||
<name>url_hash</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<comments>sha1 hash of the url without the protocol</comments> |
|||
</field> |
|||
<field> |
|||
<name>token</name> |
|||
<type>text</type> |
|||
<length>128</length> |
|||
<comments>token used to exchange the shared secret</comments> |
|||
</field> |
|||
<field> |
|||
<name>shared_secret</name> |
|||
<type>text</type> |
|||
<length>256</length> |
|||
<comments>shared secret used to authenticate</comments> |
|||
</field> |
|||
<field> |
|||
<name>status</name> |
|||
<type>integer</type> |
|||
<length>4</length> |
|||
<notnull>true</notnull> |
|||
<default>2</default> |
|||
<comments>current status of the connection</comments> |
|||
</field> |
|||
<field> |
|||
<name>sync_token</name> |
|||
<type>text</type> |
|||
<length>512</length> |
|||
<comments>cardDav sync token</comments> |
|||
</field> |
|||
<index> |
|||
<name>url_hash</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>url_hash</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
</declaration> |
|||
</table> |
|||
</database> |
|||
@ -0,0 +1,83 @@ |
|||
<?php |
|||
|
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @author Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
namespace OCA\Federation\Migration; |
|||
|
|||
use Closure; |
|||
use Doctrine\DBAL\Types\Types; |
|||
use OCP\DB\ISchemaWrapper; |
|||
use OCP\Migration\IOutput; |
|||
use OCP\Migration\SimpleMigrationStep; |
|||
|
|||
class Version1010Date20200630191302 extends SimpleMigrationStep { |
|||
|
|||
/** |
|||
* @param IOutput $output |
|||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
|||
* @param array $options |
|||
* @return null|ISchemaWrapper |
|||
*/ |
|||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { |
|||
/** @var ISchemaWrapper $schema */ |
|||
$schema = $schemaClosure(); |
|||
|
|||
if (!$schema->hasTable('trusted_servers')) { |
|||
$table = $schema->createTable('trusted_servers'); |
|||
$table->addColumn('id', Types::INTEGER, [ |
|||
'autoincrement' => true, |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
]); |
|||
$table->addColumn('url', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 512, |
|||
]); |
|||
$table->addColumn('url_hash', Types::STRING, [ |
|||
'notnull' => true, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('token', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 128, |
|||
]); |
|||
$table->addColumn('shared_secret', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 256, |
|||
]); |
|||
$table->addColumn('status', Types::INTEGER, [ |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
'default' => 2, |
|||
]); |
|||
$table->addColumn('sync_token', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 512, |
|||
]); |
|||
$table->setPrimaryKey(['id']); |
|||
$table->addUniqueIndex(['url_hash'], 'url_hash'); |
|||
} |
|||
return $schema; |
|||
} |
|||
} |
|||
@ -1,225 +0,0 @@ |
|||
<database> |
|||
<name>*dbname*</name> |
|||
<create>true</create> |
|||
<overwrite>false</overwrite> |
|||
<charset>utf8</charset> |
|||
<table> |
|||
<name>*dbprefix*external_mounts</name> |
|||
<declaration> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<name>mount_point</name> |
|||
<type>text</type> |
|||
<length>128</length> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
<field> |
|||
<name>storage_backend</name> |
|||
<type>text</type> |
|||
<length>64</length> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
<field> |
|||
<name>auth_backend</name> |
|||
<type>text</type> |
|||
<length>64</length> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
<field> |
|||
<name>priority</name> |
|||
<type>integer</type> |
|||
<default>100</default> |
|||
<length>4</length> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
<!-- admin = 1, personal = 2--> |
|||
<field> |
|||
<name>type</name> |
|||
<type>integer</type> |
|||
<length>4</length> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
</declaration> |
|||
</table> |
|||
<table> |
|||
<name>*dbprefix*external_applicable</name> |
|||
<declaration> |
|||
<field> |
|||
<name>applicable_id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<!--foreign key: external_mounts.mount_id--> |
|||
<name>mount_id</name> |
|||
<type>integer</type> |
|||
<notnull>true</notnull> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<!-- possible mount types: global = 1, group = 2, user = 3 --> |
|||
<name>type</name> |
|||
<type>integer</type> |
|||
<length>4</length> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
<field> |
|||
<!-- user_id, group_id or null for global mounts --> |
|||
<name>value</name> |
|||
<type>text</type> |
|||
<length>64</length> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>applicable_mount</name> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
<index> |
|||
<name>applicable_type_value</name> |
|||
<field> |
|||
<name>type</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
<field> |
|||
<name>value</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
<index> |
|||
<name>applicable_type_value_mount</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>type</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
<field> |
|||
<name>value</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
</declaration> |
|||
</table> |
|||
|
|||
<table> |
|||
<name>*dbprefix*external_config</name> |
|||
<declaration> |
|||
<field> |
|||
<name>config_id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<!--foreign key: external_mounts.mount_id--> |
|||
<name>mount_id</name> |
|||
<type>integer</type> |
|||
<notnull>true</notnull> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<name>key</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>64</length> |
|||
</field> |
|||
<field> |
|||
<name>value</name> |
|||
<type>text</type> |
|||
<notnull>false</notnull> |
|||
<length>4096</length> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>config_mount</name> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
<index> |
|||
<name>config_mount_key</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
<field> |
|||
<name>key</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
</declaration> |
|||
</table> |
|||
|
|||
<table> |
|||
<name>*dbprefix*external_options</name> |
|||
<declaration> |
|||
<field> |
|||
<name>option_id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<!--foreign key: external_mounts.mount_id--> |
|||
<name>mount_id</name> |
|||
<type>integer</type> |
|||
<notnull>true</notnull> |
|||
<length>6</length> |
|||
</field> |
|||
<field> |
|||
<name>key</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>64</length> |
|||
</field> |
|||
<field> |
|||
<name>value</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>256</length> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>option_mount</name> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
<index> |
|||
<name>option_mount_key</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>mount_id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
<field> |
|||
<name>key</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
</declaration> |
|||
</table> |
|||
</database> |
|||
@ -0,0 +1,150 @@ |
|||
<?php |
|||
|
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @author Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
namespace OCA\Files_External\Migration; |
|||
|
|||
use Closure; |
|||
use Doctrine\DBAL\Types\Types; |
|||
use OCP\DB\ISchemaWrapper; |
|||
use OCP\Migration\IOutput; |
|||
use OCP\Migration\SimpleMigrationStep; |
|||
|
|||
class Version1011Date20200630192246 extends SimpleMigrationStep { |
|||
/** |
|||
* @param IOutput $output |
|||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
|||
* @param array $options |
|||
* @return null|ISchemaWrapper |
|||
*/ |
|||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { |
|||
/** @var ISchemaWrapper $schema */ |
|||
$schema = $schemaClosure(); |
|||
|
|||
if (!$schema->hasTable('external_mounts')) { |
|||
$table = $schema->createTable('external_mounts'); |
|||
$table->addColumn('mount_id', Types::BIGINT, [ |
|||
'autoincrement' => true, |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('mount_point', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 128, |
|||
]); |
|||
$table->addColumn('storage_backend', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 64, |
|||
]); |
|||
$table->addColumn('auth_backend', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 64, |
|||
]); |
|||
$table->addColumn('priority', Types::INTEGER, [ |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
'default' => 100, |
|||
]); |
|||
$table->addColumn('type', Types::INTEGER, [ |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
]); |
|||
$table->setPrimaryKey(['mount_id']); |
|||
} |
|||
|
|||
if (!$schema->hasTable('external_applicable')) { |
|||
$table = $schema->createTable('external_applicable'); |
|||
$table->addColumn('applicable_id', Types::BIGINT, [ |
|||
'autoincrement' => true, |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('mount_id', Types::BIGINT, [ |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('type', Types::INTEGER, [ |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
]); |
|||
$table->addColumn('value', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 64, |
|||
]); |
|||
$table->setPrimaryKey(['applicable_id']); |
|||
$table->addIndex(['mount_id'], 'applicable_mount'); |
|||
$table->addIndex(['type', 'value'], 'applicable_type_value'); |
|||
$table->addUniqueIndex(['type', 'value', 'mount_id'], 'applicable_type_value_mount'); |
|||
} |
|||
|
|||
if (!$schema->hasTable('external_config')) { |
|||
$table = $schema->createTable('external_config'); |
|||
$table->addColumn('config_id', Types::BIGINT, [ |
|||
'autoincrement' => true, |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('mount_id', Types::BIGINT, [ |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('key', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 64, |
|||
]); |
|||
$table->addColumn('value', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 4096, |
|||
]); |
|||
$table->setPrimaryKey(['config_id']); |
|||
$table->addIndex(['mount_id'], 'config_mount'); |
|||
$table->addUniqueIndex(['mount_id', 'key'], 'config_mount_key'); |
|||
} |
|||
|
|||
if (!$schema->hasTable('external_options')) { |
|||
$table = $schema->createTable('external_options'); |
|||
$table->addColumn('option_id', Types::BIGINT, [ |
|||
'autoincrement' => true, |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('mount_id', Types::BIGINT, [ |
|||
'notnull' => true, |
|||
'length' => 6, |
|||
]); |
|||
$table->addColumn('key', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 64, |
|||
]); |
|||
$table->addColumn('value', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 256, |
|||
]); |
|||
$table->setPrimaryKey(['option_id']); |
|||
$table->addIndex(['mount_id'], 'option_mount'); |
|||
$table->addUniqueIndex(['mount_id', 'key'], 'option_mount_key'); |
|||
} |
|||
return $schema; |
|||
} |
|||
} |
|||
@ -1,101 +0,0 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1" ?> |
|||
<database> |
|||
|
|||
<name>*dbname*</name> |
|||
<create>true</create> |
|||
<overwrite>false</overwrite> |
|||
|
|||
<charset>utf8</charset> |
|||
|
|||
<table> |
|||
|
|||
<name>*dbprefix*files_trash</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>id</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<length>250</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>user</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<length>64</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>timestamp</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<length>12</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>location</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<length>512</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>type</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>mime</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>255</length> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>id_index</name> |
|||
<field> |
|||
<name>id</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
|
|||
<index> |
|||
<name>timestamp_index</name> |
|||
<field> |
|||
<name>timestamp</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
|
|||
<index> |
|||
<name>user_index</name> |
|||
<field> |
|||
<name>user</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
|
|||
</declaration> |
|||
|
|||
</table> |
|||
|
|||
</database> |
|||
@ -0,0 +1,87 @@ |
|||
<?php |
|||
|
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @author Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
namespace OCA\Files_Trashbin\Migration; |
|||
|
|||
use Closure; |
|||
use Doctrine\DBAL\Types\Types; |
|||
use OCP\DB\ISchemaWrapper; |
|||
use OCP\Migration\IOutput; |
|||
use OCP\Migration\SimpleMigrationStep; |
|||
|
|||
class Version1010Date20200630192639 extends SimpleMigrationStep { |
|||
/** |
|||
* @param IOutput $output |
|||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
|||
* @param array $options |
|||
* @return null|ISchemaWrapper |
|||
*/ |
|||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { |
|||
/** @var ISchemaWrapper $schema */ |
|||
$schema = $schemaClosure(); |
|||
|
|||
if (!$schema->hasTable('files_trash')) { |
|||
$table = $schema->createTable('files_trash'); |
|||
$table->addColumn('auto_id', Types::INTEGER, [ |
|||
'autoincrement' => true, |
|||
'notnull' => true, |
|||
'length' => 4, |
|||
]); |
|||
$table->addColumn('id', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 250, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('user', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 64, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('timestamp', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 12, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('location', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 512, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('type', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 4, |
|||
]); |
|||
$table->addColumn('mime', Types::STRING, [ |
|||
'notnull' => false, |
|||
'length' => 255, |
|||
]); |
|||
$table->setPrimaryKey(['auto_id']); |
|||
$table->addIndex(['id'], 'id_index'); |
|||
$table->addIndex(['timestamp'], 'timestamp_index'); |
|||
$table->addIndex(['user'], 'user_index'); |
|||
} |
|||
return $schema; |
|||
} |
|||
} |
|||
@ -1,147 +0,0 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1" ?> |
|||
<database> |
|||
|
|||
<name>*dbname*</name> |
|||
<create>true</create> |
|||
<overwrite>false</overwrite> |
|||
<charset>utf8</charset> |
|||
|
|||
<table> |
|||
|
|||
<name>*dbprefix*ldap_user_mapping</name> |
|||
|
|||
<declaration> |
|||
|
|||
<field> |
|||
<name>ldap_dn</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>owncloud_name</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>directory_uuid</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>ldap_dn_users</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>ldap_dn</name> |
|||
</field> |
|||
</index> |
|||
|
|||
<index> |
|||
<name>owncloud_name_users</name> |
|||
<primary>true</primary> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>owncloud_name</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
|
|||
</declaration> |
|||
|
|||
</table> |
|||
|
|||
<table> |
|||
|
|||
<name>*dbprefix*ldap_group_mapping</name> |
|||
|
|||
<declaration> |
|||
|
|||
<field> |
|||
<name>ldap_dn</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>owncloud_name</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>directory_uuid</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>ldap_dn_groups</name> |
|||
<unique>true</unique> |
|||
<primary>true</primary> |
|||
<field> |
|||
<name>ldap_dn</name> |
|||
</field> |
|||
</index> |
|||
|
|||
<index> |
|||
<name>owncloud_name_groups</name> |
|||
<unique>true</unique> |
|||
<field> |
|||
<name>owncloud_name</name> |
|||
<sorting>ascending</sorting> |
|||
</field> |
|||
</index> |
|||
|
|||
</declaration> |
|||
|
|||
</table> |
|||
|
|||
|
|||
<table> |
|||
|
|||
<name>*dbprefix*ldap_group_members</name> |
|||
|
|||
<declaration> |
|||
|
|||
<field> |
|||
<name>owncloudname</name> |
|||
<type>text</type> |
|||
<notnull>true</notnull> |
|||
<length>255</length> |
|||
<default></default> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>owncloudusers</name> |
|||
<type>clob</type> |
|||
<notnull>true</notnull> |
|||
</field> |
|||
|
|||
<index> |
|||
<name>ldap_group_members_index</name> |
|||
<unique>true</unique> |
|||
<primary>true</primary> |
|||
<field> |
|||
<name>owncloudname</name> |
|||
</field> |
|||
</index> |
|||
|
|||
</declaration> |
|||
|
|||
</table> |
|||
|
|||
</database> |
|||
@ -0,0 +1,101 @@ |
|||
<?php |
|||
|
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @author Joas Schilling <coding@schilljs.com> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
namespace OCA\User_LDAP\Migration; |
|||
|
|||
use Closure; |
|||
use Doctrine\DBAL\Types\Types; |
|||
use OCP\DB\ISchemaWrapper; |
|||
use OCP\Migration\IOutput; |
|||
use OCP\Migration\SimpleMigrationStep; |
|||
|
|||
class Version1010Date20200630192842 extends SimpleMigrationStep { |
|||
/** |
|||
* @param IOutput $output |
|||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
|||
* @param array $options |
|||
* @return null|ISchemaWrapper |
|||
*/ |
|||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { |
|||
/** @var ISchemaWrapper $schema */ |
|||
$schema = $schemaClosure(); |
|||
|
|||
if (!$schema->hasTable('ldap_user_mapping')) { |
|||
$table = $schema->createTable('ldap_user_mapping'); |
|||
$table->addColumn('ldap_dn', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('owncloud_name', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('directory_uuid', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->setPrimaryKey(['owncloud_name']); |
|||
$table->addUniqueIndex(['ldap_dn'], 'ldap_dn_users'); |
|||
} |
|||
|
|||
if (!$schema->hasTable('ldap_group_mapping')) { |
|||
$table = $schema->createTable('ldap_group_mapping'); |
|||
$table->addColumn('ldap_dn', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('owncloud_name', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('directory_uuid', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->setPrimaryKey(['ldap_dn']); |
|||
$table->addUniqueIndex(['owncloud_name'], 'owncloud_name_groups'); |
|||
} |
|||
|
|||
if (!$schema->hasTable('ldap_group_members')) { |
|||
$table = $schema->createTable('ldap_group_members'); |
|||
$table->addColumn('owncloudname', Types::STRING, [ |
|||
'notnull' => true, |
|||
'length' => 255, |
|||
'default' => '', |
|||
]); |
|||
$table->addColumn('owncloudusers', Types::TEXT, [ |
|||
'notnull' => true, |
|||
]); |
|||
$table->setPrimaryKey(['owncloudname']); |
|||
} |
|||
return $schema; |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue