]> source.dussan.org Git - nextcloud-server.git/commitdiff
Move files_trashbin to migrations
authorJoas Schilling <coding@schilljs.com>
Tue, 30 Jun 2020 19:27:52 +0000 (21:27 +0200)
committerJoas Schilling <coding@schilljs.com>
Mon, 6 Jul 2020 14:42:14 +0000 (16:42 +0200)
Signed-off-by: Joas Schilling <coding@schilljs.com>
apps/files_trashbin/appinfo/database.xml [deleted file]
apps/files_trashbin/appinfo/info.xml
apps/files_trashbin/lib/Migration/Version1010Date20200630192639.php [new file with mode: 0644]

diff --git a/apps/files_trashbin/appinfo/database.xml b/apps/files_trashbin/appinfo/database.xml
deleted file mode 100644 (file)
index 2944a31..0000000
+++ /dev/null
@@ -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>
index a6fb06c23cde0d4835040f14cc61c29a2907bab1..39377ecd20846357743677043f33ad2b777f20e0 100644 (file)
@@ -9,7 +9,7 @@ This application enables users to restore files that were deleted from the syste
 To prevent a user from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation.
 
        </description>
-       <version>1.10.0</version>
+       <version>1.10.1</version>
        <licence>agpl</licence>
        <author>Bjoern Schiessle</author>
        <namespace>Files_Trashbin</namespace>
diff --git a/apps/files_trashbin/lib/Migration/Version1010Date20200630192639.php b/apps/files_trashbin/lib/Migration/Version1010Date20200630192639.php
new file mode 100644 (file)
index 0000000..c9c0375
--- /dev/null
@@ -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;
+       }
+}