From 094a57e6440609c2fa03132bb3d494cc43c1b2ae Mon Sep 17 00:00:00 2001 From: Varun Patil Date: Sat, 7 Oct 2023 08:51:53 -0700 Subject: [PATCH] lp: fix mtime type Signed-off-by: Varun Patil --- .../Version400800Date20221122105007.php | 4 +- .../Version505001Date20230828155021.php | 14 +-- .../Version505005Date20231007154645.php | 86 +++++++++++++++++++ 3 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 lib/Migration/Version505005Date20231007154645.php diff --git a/lib/Migration/Version400800Date20221122105007.php b/lib/Migration/Version400800Date20221122105007.php index 0bd09de9..7ed7553c 100644 --- a/lib/Migration/Version400800Date20221122105007.php +++ b/lib/Migration/Version400800Date20221122105007.php @@ -75,8 +75,10 @@ class Version400800Date20221122105007 extends SimpleMigrationStep 'length' => 20, ]); - $table->addColumn('mtime', Types::INTEGER, [ + // Version505005Date20231007154645 + $table->addColumn('mtime', Types::BIGINT, [ 'notnull' => true, + 'length' => 20, ]); $table->setPrimaryKey(['id']); diff --git a/lib/Migration/Version505001Date20230828155021.php b/lib/Migration/Version505001Date20230828155021.php index 59c30543..2ad49b95 100644 --- a/lib/Migration/Version505001Date20230828155021.php +++ b/lib/Migration/Version505001Date20230828155021.php @@ -46,12 +46,14 @@ class Version505001Date20230828155021 extends SimpleMigrationStep $table = $schema->getTable('memories'); - $mtime = $table->getColumn('mtime'); - $mtime->setType(Type::getType(Types::BIGINT)); - $mtime->setOptions([ - 'notnull' => true, - 'length' => 20, - ]); + if ($table->hasColumn('mtime')) { + $mtime = $table->getColumn('mtime'); + $mtime->setType(Type::getType(Types::BIGINT)); + $mtime->setOptions([ + 'notnull' => true, + 'length' => 20, + ]); + } return $schema; } diff --git a/lib/Migration/Version505005Date20231007154645.php b/lib/Migration/Version505005Date20231007154645.php new file mode 100644 index 00000000..f1f83dc6 --- /dev/null +++ b/lib/Migration/Version505005Date20231007154645.php @@ -0,0 +1,86 @@ + + * @author Varun Patil + * @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\Memories\Migration; + +/** + * @copyright Copyright (c) 2023 Varun Patil + * @author Varun Patil + * @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\Memories\Migration; + +use Doctrine\DBAL\Types\Type; +use OCP\DB\ISchemaWrapper; +use OCP\DB\Types; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +class Version505005Date20231007154645 extends SimpleMigrationStep +{ + /** + * @param Closure(): ISchemaWrapper $schemaClosure + */ + public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void {} + + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options): ?ISchemaWrapper + { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->getTable('memories_livephoto'); + + if ($table->hasColumn('mtime')) { + $mtime = $table->getColumn('mtime'); + $mtime->setType(Type::getType(Types::BIGINT)); + $mtime->setOptions([ + 'notnull' => true, + 'length' => 20, + ]); + } + + return $schema; + } + + /** + * @param Closure(): ISchemaWrapper $schemaClosure + */ + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void {} +}