From 9001438879007b0b92b573d761a9cb15f34b959f Mon Sep 17 00:00:00 2001
From: Joas Schilling <coding@schilljs.com>
Date: Tue, 30 Jun 2020 21:27:52 +0200
Subject: [PATCH] Move files_trashbin to migrations

Signed-off-by: Joas Schilling <coding@schilljs.com>
---
 apps/files_trashbin/appinfo/database.xml      | 101 ------------------
 apps/files_trashbin/appinfo/info.xml          |   2 +-
 .../Version1010Date20200630192639.php         |  87 +++++++++++++++
 3 files changed, 88 insertions(+), 102 deletions(-)
 delete mode 100644 apps/files_trashbin/appinfo/database.xml
 create mode 100644 apps/files_trashbin/lib/Migration/Version1010Date20200630192639.php

diff --git a/apps/files_trashbin/appinfo/database.xml b/apps/files_trashbin/appinfo/database.xml
deleted file mode 100644
index 2944a31b02d..00000000000
--- a/apps/files_trashbin/appinfo/database.xml
+++ /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>
diff --git a/apps/files_trashbin/appinfo/info.xml b/apps/files_trashbin/appinfo/info.xml
index a6fb06c23cd..39377ecd208 100644
--- a/apps/files_trashbin/appinfo/info.xml
+++ b/apps/files_trashbin/appinfo/info.xml
@@ -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
index 00000000000..c9c03757741
--- /dev/null
+++ b/apps/files_trashbin/lib/Migration/Version1010Date20200630192639.php
@@ -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;
+	}
+}
-- 
GitLab