summaryrefslogtreecommitdiffstats
path: root/apps/files_external/appinfo
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-11-02 13:13:06 +0100
committerVincent Petry <pvince81@owncloud.com>2015-12-04 13:48:21 +0100
commita1898dc2bf9a89def29c1437903e560609f0cf40 (patch)
tree527d941bd240dd1c02760819724d21dfdd5d041c /apps/files_external/appinfo
parent98bb8372f7f0ab1f669cdd92d439814e1b6aaa1a (diff)
downloadnextcloud-server-a1898dc2bf9a89def29c1437903e560609f0cf40.tar.gz
nextcloud-server-a1898dc2bf9a89def29c1437903e560609f0cf40.zip
db config backend for files_external
Diffstat (limited to 'apps/files_external/appinfo')
-rw-r--r--apps/files_external/appinfo/database.xml222
-rw-r--r--apps/files_external/appinfo/info.xml2
-rw-r--r--apps/files_external/appinfo/update.php30
3 files changed, 253 insertions, 1 deletions
diff --git a/apps/files_external/appinfo/database.xml b/apps/files_external/appinfo/database.xml
new file mode 100644
index 00000000000..27918bf9819
--- /dev/null
+++ b/apps/files_external/appinfo/database.xml
@@ -0,0 +1,222 @@
+<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>mount_id_app_index</name>
+ <field>
+ <name>mount_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+ <index>
+ <name>applicable_value_index</name>
+ <field>
+ <name>type</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>value</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+ <index>
+ <name>applicable_value_mount_index</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>true</notnull>
+ <length>4096</length>
+ </field>
+
+ <index>
+ <name>config_mount_id</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_id</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>
diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml
index bb494a2eaba..f6d583d0a5a 100644
--- a/apps/files_external/appinfo/info.xml
+++ b/apps/files_external/appinfo/info.xml
@@ -14,7 +14,7 @@
<admin>admin-external-storage</admin>
</documentation>
<rememberlogin>false</rememberlogin>
- <version>0.4.0</version>
+ <version>0.5.0</version>
<types>
<filesystem/>
</types>
diff --git a/apps/files_external/appinfo/update.php b/apps/files_external/appinfo/update.php
new file mode 100644
index 00000000000..2eedfe9b88f
--- /dev/null
+++ b/apps/files_external/appinfo/update.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+$installedVersion = \OC::$server->getConfig()->getAppValue('files_external', 'installed_version');
+
+$app = new \OCA\Files_external\Appinfo\Application();
+
+// Migration to db config
+if (version_compare($installedVersion, '0.5.0', '<')) {
+ $migrator = $app->getContainer()->query('OCA\Files_external\Migration\StorageMigrator');
+ $migrator->migrateGlobal();
+}