From 43ac71adeeeabfc62382635332ad358912398c8c Mon Sep 17 00:00:00 2001 From: Christopher Ng Date: Mon, 31 Jul 2023 12:10:50 -0700 Subject: feat: init files_reminders migration Signed-off-by: Christopher Ng (cherry picked from commit e16001b8eb6b5f87dfba57cca94adb88cf6b1d45) --- .../Migration/Version10000Date20230725162149.php | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 apps/files_reminders/lib/Migration/Version10000Date20230725162149.php (limited to 'apps/files_reminders/lib/Migration') diff --git a/apps/files_reminders/lib/Migration/Version10000Date20230725162149.php b/apps/files_reminders/lib/Migration/Version10000Date20230725162149.php new file mode 100644 index 00000000000..ab0afd5aec6 --- /dev/null +++ b/apps/files_reminders/lib/Migration/Version10000Date20230725162149.php @@ -0,0 +1,71 @@ + + * + * @author Christopher Ng + * + * @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 . + * + */ + +namespace OCA\FilesReminders\Migration; + +use Closure; +use OCA\FilesReminders\Db\ReminderMapper; +use OCP\DB\ISchemaWrapper; +use OCP\DB\Types; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +class Version10000Date20230725162149 extends SimpleMigrationStep { + /** + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->createTable(ReminderMapper::TABLE_NAME); + $table->addColumn('id', Types::BIGINT, [ + 'autoincrement' => true, + 'notnull' => true, + 'length' => 20, + 'unsigned' => true, + ]); + $table->addColumn('user_id', Types::STRING, [ + 'notnull' => true, + 'length' => 64, + ]); + $table->addColumn('file_id', Types::BIGINT, [ + 'notnull' => true, + 'length' => 20, + ]); + $table->addColumn('remind_at', Types::BIGINT, [ + 'notnull' => true, + ]); + $table->addColumn('notified', Types::BOOLEAN, [ + 'notnull' => false, + 'default' => false, + ]); + $table->setPrimaryKey(['id']); + $table->addUniqueIndex(['user_id', 'file_id', 'remind_at'], 'reminders_uniq_idx'); + + return $schema; + } +} -- cgit v1.2.3