aboutsummaryrefslogtreecommitdiffstats
path: root/core/Migrations
diff options
context:
space:
mode:
Diffstat (limited to 'core/Migrations')
-rw-r--r--core/Migrations/Version13000Date20170705121758.php27
-rw-r--r--core/Migrations/Version13000Date20170718121200.php110
-rw-r--r--core/Migrations/Version13000Date20170814074715.php24
-rw-r--r--core/Migrations/Version13000Date20170919121250.php26
-rw-r--r--core/Migrations/Version13000Date20170926101637.php26
-rw-r--r--core/Migrations/Version14000Date20180129121024.php24
-rw-r--r--core/Migrations/Version14000Date20180404140050.php31
-rw-r--r--core/Migrations/Version14000Date20180516101403.php23
-rw-r--r--core/Migrations/Version14000Date20180518120534.php21
-rw-r--r--core/Migrations/Version14000Date20180522074438.php24
-rw-r--r--core/Migrations/Version14000Date20180626223656.php27
-rw-r--r--core/Migrations/Version14000Date20180710092004.php27
-rw-r--r--core/Migrations/Version14000Date20180712153140.php26
-rw-r--r--core/Migrations/Version15000Date20180926101451.php23
-rw-r--r--core/Migrations/Version15000Date20181015062942.php23
-rw-r--r--core/Migrations/Version15000Date20181029084625.php23
-rw-r--r--core/Migrations/Version16000Date20190207141427.php32
-rw-r--r--core/Migrations/Version16000Date20190212081545.php26
-rw-r--r--core/Migrations/Version16000Date20190427105638.php31
-rw-r--r--core/Migrations/Version16000Date20190428150708.php27
-rw-r--r--core/Migrations/Version17000Date20190514105811.php30
-rw-r--r--core/Migrations/Version18000Date20190920085628.php35
-rw-r--r--core/Migrations/Version18000Date20191014105105.php37
-rw-r--r--core/Migrations/Version18000Date20191204114856.php32
-rw-r--r--core/Migrations/Version19000Date20200211083441.php24
-rw-r--r--core/Migrations/Version20000Date20201109081915.php23
-rw-r--r--core/Migrations/Version20000Date20201109081918.php40
-rw-r--r--core/Migrations/Version20000Date20201109081919.php22
-rw-r--r--core/Migrations/Version20000Date20201111081915.php21
-rw-r--r--core/Migrations/Version21000Date20201120141228.php22
-rw-r--r--core/Migrations/Version21000Date20201202095923.php24
-rw-r--r--core/Migrations/Version21000Date20210119195004.php21
-rw-r--r--core/Migrations/Version21000Date20210309185126.php21
-rw-r--r--core/Migrations/Version21000Date20210309185127.php21
-rw-r--r--core/Migrations/Version22000Date20210216080825.php21
-rw-r--r--core/Migrations/Version23000Date20210721100600.php59
-rw-r--r--core/Migrations/Version23000Date20210906132259.php41
-rw-r--r--core/Migrations/Version23000Date20210930122352.php21
-rw-r--r--core/Migrations/Version23000Date20211203110726.php21
-rw-r--r--core/Migrations/Version23000Date20211213203940.php24
-rw-r--r--core/Migrations/Version24000Date20211210141942.php30
-rw-r--r--core/Migrations/Version24000Date20211213081506.php19
-rw-r--r--core/Migrations/Version24000Date20211213081604.php19
-rw-r--r--core/Migrations/Version24000Date20211222112246.php21
-rw-r--r--core/Migrations/Version24000Date20211230140012.php29
-rw-r--r--core/Migrations/Version24000Date20220131153041.php21
-rw-r--r--core/Migrations/Version24000Date20220202150027.php6
-rw-r--r--core/Migrations/Version24000Date20220404230027.php57
-rw-r--r--core/Migrations/Version24000Date20220425072957.php21
-rw-r--r--core/Migrations/Version25000Date20220515204012.php38
-rw-r--r--core/Migrations/Version25000Date20220602190540.php39
-rw-r--r--core/Migrations/Version25000Date20220905140840.php39
-rw-r--r--core/Migrations/Version25000Date20221007010957.php54
-rw-r--r--core/Migrations/Version27000Date20220613163520.php34
-rw-r--r--core/Migrations/Version27000Date20230309104325.php74
-rw-r--r--core/Migrations/Version27000Date20230309104802.php40
-rw-r--r--core/Migrations/Version28000Date20230616104802.php85
-rw-r--r--core/Migrations/Version28000Date20230728104802.php94
-rw-r--r--core/Migrations/Version28000Date20230803221055.php50
-rw-r--r--core/Migrations/Version28000Date20230906104802.php82
-rw-r--r--core/Migrations/Version28000Date20231004103301.php82
-rw-r--r--core/Migrations/Version28000Date20231103104802.php44
-rw-r--r--core/Migrations/Version28000Date20231126110901.php51
-rw-r--r--core/Migrations/Version28000Date20240828142927.php83
-rw-r--r--core/Migrations/Version29000Date20231126110901.php55
-rw-r--r--core/Migrations/Version29000Date20231213104850.php50
-rw-r--r--core/Migrations/Version29000Date20240124132201.php58
-rw-r--r--core/Migrations/Version29000Date20240124132202.php36
-rw-r--r--core/Migrations/Version29000Date20240131122720.php40
-rw-r--r--core/Migrations/Version30000Date20240429122720.php105
-rw-r--r--core/Migrations/Version30000Date20240708160048.php67
-rw-r--r--core/Migrations/Version30000Date20240717111406.php55
-rw-r--r--core/Migrations/Version30000Date20240814180800.php37
-rw-r--r--core/Migrations/Version30000Date20240815080800.php30
-rw-r--r--core/Migrations/Version30000Date20240906095113.php42
-rw-r--r--core/Migrations/Version31000Date20240101084401.php135
-rw-r--r--core/Migrations/Version31000Date20240814184402.php54
-rw-r--r--core/Migrations/Version31000Date20250213102442.php37
-rw-r--r--core/Migrations/Version32000Date20250620081925.php16
-rw-r--r--core/Migrations/Version32000Date20250731062008.php106
-rw-r--r--core/Migrations/Version32000Date20250806110519.php49
81 files changed, 2125 insertions, 1120 deletions
diff --git a/core/Migrations/Version13000Date20170705121758.php b/core/Migrations/Version13000Date20170705121758.php
index 9436502b4a0..17262cf0743 100644
--- a/core/Migrations/Version13000Date20170705121758.php
+++ b/core/Migrations/Version13000Date20170705121758.php
@@ -1,32 +1,13 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
diff --git a/core/Migrations/Version13000Date20170718121200.php b/core/Migrations/Version13000Date20170718121200.php
index 3e14b4af47a..35c2d1730bc 100644
--- a/core/Migrations/Version13000Date20170718121200.php
+++ b/core/Migrations/Version13000Date20170718121200.php
@@ -1,50 +1,21 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Georg Ehrke <oc.list@georgehrke.com>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Mario Danic <mario@lovelyhq.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
-use Doctrine\DBAL\Platforms\PostgreSQL94Platform;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version13000Date20170718121200 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- private $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ private IDBConnection $connection,
+ ) {
}
public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
@@ -150,13 +121,15 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
$table->addIndex(['storage_id'], 'mounts_storage_index');
$table->addIndex(['root_id'], 'mounts_root_index');
$table->addIndex(['mount_id'], 'mounts_mount_id_index');
- $table->addUniqueIndex(['user_id', 'root_id'], 'mounts_user_root_index');
+ $table->addIndex(['user_id', 'root_id', 'mount_point'], 'mounts_user_root_path_index', [], ['lengths' => [null, null, 128]]);
} else {
$table = $schema->getTable('mounts');
- $table->addColumn('mount_id', Types::BIGINT, [
- 'notnull' => false,
- 'length' => 20,
- ]);
+ if (!$table->hasColumn('mount_id')) {
+ $table->addColumn('mount_id', Types::BIGINT, [
+ 'notnull' => false,
+ 'length' => 20,
+ ]);
+ }
if (!$table->hasIndex('mounts_mount_id_index')) {
$table->addIndex(['mount_id'], 'mounts_mount_id_index');
}
@@ -263,9 +236,11 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
$table->addIndex(['storage', 'mimepart'], 'fs_storage_mimepart');
$table->addIndex(['storage', 'size', 'fileid'], 'fs_storage_size');
$table->addIndex(['fileid', 'storage', 'size'], 'fs_id_storage_size');
+ $table->addIndex(['parent'], 'fs_parent');
+ $table->addIndex(['name'], 'fs_name_hash');
$table->addIndex(['mtime'], 'fs_mtime');
$table->addIndex(['size'], 'fs_size');
- if (!$schema->getDatabasePlatform() instanceof PostgreSQL94Platform) {
+ if ($this->connection->getDatabaseProvider() !== IDBConnection::PLATFORM_POSTGRES) {
$table->addIndex(['storage', 'path'], 'fs_storage_path_prefix', [], ['lengths' => [null, 64]]);
}
}
@@ -362,7 +337,8 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
'notnull' => true,
]);
$table->setPrimaryKey(['id']);
- $table->addIndex(['userid'], 'property_index');
+ // Dropped in Version29000Date20240131122720 because property_index is redundant with properties_path_index
+ // $table->addIndex(['userid'], 'property_index');
$table->addIndex(['userid', 'propertypath'], 'properties_path_index');
$table->addIndex(['propertypath'], 'properties_pathonly_index');
} else {
@@ -682,6 +658,7 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
$table->addIndex(['uid'], 'uid_index');
$table->addIndex(['type'], 'type_index');
$table->addIndex(['category'], 'category_index');
+ $table->addUniqueIndex(['uid', 'type', 'category'], 'unique_category_per_user');
}
if (!$schema->hasTable('vcategory_to_object')) {
@@ -753,7 +730,12 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
'unsigned' => true,
]);
$table->setPrimaryKey(['objecttype', 'objectid', 'systemtagid'], 'som_pk');
-// $table->addUniqueIndex(['objecttype', 'objectid', 'systemtagid'], 'mapping');
+ // $table->addUniqueIndex(['objecttype', 'objectid', 'systemtagid'], 'mapping');
+ $table->addIndex(['systemtagid', 'objecttype'], 'systag_by_tagid');
+ // systag_by_objectid was added later and might be missing in older deployments
+ $table->addIndex(['objectid'], 'systag_by_objectid');
+ // systag_objecttype was added later and might be missing in older deployments
+ $table->addIndex(['objecttype'], 'systag_objecttype');
}
if (!$schema->hasTable('systemtag_group')) {
@@ -889,25 +871,25 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
]);
$table->addIndex(['object_type', 'object_id'], 'comments_marker_object_index');
$table->setPrimaryKey(['user_id', 'object_type', 'object_id'], 'crm_pk');
-// $table->addUniqueIndex(['user_id', 'object_type', 'object_id'], 'comments_marker_index');
+ // $table->addUniqueIndex(['user_id', 'object_type', 'object_id'], 'comments_marker_index');
}
-// if (!$schema->hasTable('credentials')) {
-// $table = $schema->createTable('credentials');
-// $table->addColumn('user', 'string', [
-// 'notnull' => false,
-// 'length' => 64,
-// ]);
-// $table->addColumn('identifier', 'string', [
-// 'notnull' => true,
-// 'length' => 64,
-// ]);
-// $table->addColumn('credentials', 'text', [
-// 'notnull' => false,
-// ]);
-// $table->setPrimaryKey(['user', 'identifier']);
-// $table->addIndex(['user'], 'credentials_user');
-// }
+ // if (!$schema->hasTable('credentials')) {
+ // $table = $schema->createTable('credentials');
+ // $table->addColumn('user', 'string', [
+ // 'notnull' => false,
+ // 'length' => 64,
+ // ]);
+ // $table->addColumn('identifier', 'string', [
+ // 'notnull' => true,
+ // 'length' => 64,
+ // ]);
+ // $table->addColumn('credentials', 'text', [
+ // 'notnull' => false,
+ // ]);
+ // $table->setPrimaryKey(['user', 'identifier']);
+ // $table->addIndex(['user'], 'credentials_user');
+ // }
if (!$schema->hasTable('admin_sections')) {
$table = $schema->createTable('admin_sections');
@@ -1037,9 +1019,9 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
$result = $query->execute();
while ($row = $result->fetch()) {
preg_match('/(calendar)\/([A-z0-9-@_]+)\//', $row['propertypath'], $match);
- $insert->setParameter('propertypath', (string) $row['propertypath'])
- ->setParameter('propertyname', (string) $row['propertyname'])
- ->setParameter('propertyvalue', (string) $row['propertyvalue'])
+ $insert->setParameter('propertypath', (string)$row['propertypath'])
+ ->setParameter('propertyname', (string)$row['propertyname'])
+ ->setParameter('propertyvalue', (string)$row['propertyvalue'])
->setParameter('userid', ($match[2] ?? ''));
$insert->execute();
}
diff --git a/core/Migrations/Version13000Date20170814074715.php b/core/Migrations/Version13000Date20170814074715.php
index 6882662dc53..6e7ca19fc3c 100644
--- a/core/Migrations/Version13000Date20170814074715.php
+++ b/core/Migrations/Version13000Date20170814074715.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -28,7 +11,6 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version13000Date20170814074715 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version13000Date20170919121250.php b/core/Migrations/Version13000Date20170919121250.php
index 65d52829373..b3e9541d605 100644
--- a/core/Migrations/Version13000Date20170919121250.php
+++ b/core/Migrations/Version13000Date20170919121250.php
@@ -1,27 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -33,7 +14,6 @@ use OCP\Migration\SimpleMigrationStep;
* Auto-generated migration step: Please modify to your needs!
*/
class Version13000Date20170919121250 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version13000Date20170926101637.php b/core/Migrations/Version13000Date20170926101637.php
index 0961c15be71..aca772de313 100644
--- a/core/Migrations/Version13000Date20170926101637.php
+++ b/core/Migrations/Version13000Date20170926101637.php
@@ -1,25 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -29,10 +12,9 @@ use OCP\Migration\BigIntMigration;
* Auto-generated migration step: Please modify to your needs!
*/
class Version13000Date20170926101637 extends BigIntMigration {
-
/**
* @return array Returns an array with the following structure
- * ['table1' => ['column1', 'column2'], ...]
+ * ['table1' => ['column1', 'column2'], ...]
* @since 13.0.0
*/
protected function getColumnsByTable() {
diff --git a/core/Migrations/Version14000Date20180129121024.php b/core/Migrations/Version14000Date20180129121024.php
index 30172d75f56..c16d95ed71b 100644
--- a/core/Migrations/Version14000Date20180129121024.php
+++ b/core/Migrations/Version14000Date20180129121024.php
@@ -1,26 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version14000Date20180404140050.php b/core/Migrations/Version14000Date20180404140050.php
index d7b7ce1fce2..cb7723285df 100644
--- a/core/Migrations/Version14000Date20180404140050.php
+++ b/core/Migrations/Version14000Date20180404140050.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -35,12 +17,9 @@ use OCP\Migration\SimpleMigrationStep;
* Auto-generated migration step: Please modify to your needs!
*/
class Version14000Date20180404140050 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- private $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ private IDBConnection $connection,
+ ) {
}
public function name(): string {
diff --git a/core/Migrations/Version14000Date20180516101403.php b/core/Migrations/Version14000Date20180516101403.php
index cd2df5b10ab..a71673a9674 100644
--- a/core/Migrations/Version14000Date20180516101403.php
+++ b/core/Migrations/Version14000Date20180516101403.php
@@ -1,24 +1,8 @@
<?php
+
/**
- * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -27,7 +11,6 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version14000Date20180516101403 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version14000Date20180518120534.php b/core/Migrations/Version14000Date20180518120534.php
index 39ac3ed6db3..850862070ab 100644
--- a/core/Migrations/Version14000Date20180518120534.php
+++ b/core/Migrations/Version14000Date20180518120534.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version14000Date20180522074438.php b/core/Migrations/Version14000Date20180522074438.php
index 57358eca662..e605d674daa 100644
--- a/core/Migrations/Version14000Date20180522074438.php
+++ b/core/Migrations/Version14000Date20180522074438.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -33,7 +15,7 @@ use OCP\Migration\SimpleMigrationStep;
class Version14000Date20180522074438 extends SimpleMigrationStep {
public function changeSchema(IOutput $output, Closure $schemaClosure,
- array $options): ISchemaWrapper {
+ array $options): ISchemaWrapper {
$schema = $schemaClosure();
if (!$schema->hasTable('twofactor_providers')) {
diff --git a/core/Migrations/Version14000Date20180626223656.php b/core/Migrations/Version14000Date20180626223656.php
index 29c2de29eb5..7d4dea585f6 100644
--- a/core/Migrations/Version14000Date20180626223656.php
+++ b/core/Migrations/Version14000Date20180626223656.php
@@ -1,34 +1,17 @@
<?php
+
/**
- * @copyright Copyright (c) 2018 Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version14000Date20180626223656 extends SimpleMigrationStep {
- public function changeSchema(\OCP\Migration\IOutput $output, \Closure $schemaClosure, array $options) {
+ public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
/** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('whats_new')) {
diff --git a/core/Migrations/Version14000Date20180710092004.php b/core/Migrations/Version14000Date20180710092004.php
index 30ac28ccb6e..dffaef0fe0c 100644
--- a/core/Migrations/Version14000Date20180710092004.php
+++ b/core/Migrations/Version14000Date20180710092004.php
@@ -3,34 +3,13 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018, Daniel Calviño Sánchez (danxuliu@gmail.com)
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Calviño Sánchez <danxuliu@gmail.com>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
diff --git a/core/Migrations/Version14000Date20180712153140.php b/core/Migrations/Version14000Date20180712153140.php
index 444cad072a0..b1a295ea2f6 100644
--- a/core/Migrations/Version14000Date20180712153140.php
+++ b/core/Migrations/Version14000Date20180712153140.php
@@ -1,28 +1,13 @@
<?php
+
/**
- * @copyright Copyright (c) 2018 Bjoern Schiessle <bjoern@schiessle.org>
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
/**
@@ -31,8 +16,7 @@ use OCP\Migration\SimpleMigrationStep;
* Class Version14000Date20180712153140
*/
class Version14000Date20180712153140 extends SimpleMigrationStep {
- public function changeSchema(\OCP\Migration\IOutput $output, \Closure $schemaClosure, array $options) {
-
+ public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
/** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
diff --git a/core/Migrations/Version15000Date20180926101451.php b/core/Migrations/Version15000Date20180926101451.php
index f70a786bbcd..6e254a3f840 100644
--- a/core/Migrations/Version15000Date20180926101451.php
+++ b/core/Migrations/Version15000Date20180926101451.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -32,7 +14,6 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version15000Date20180926101451 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version15000Date20181015062942.php b/core/Migrations/Version15000Date20181015062942.php
index deb64f32142..83fc9a61ade 100644
--- a/core/Migrations/Version15000Date20181015062942.php
+++ b/core/Migrations/Version15000Date20181015062942.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -32,7 +14,6 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version15000Date20181015062942 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version15000Date20181029084625.php b/core/Migrations/Version15000Date20181029084625.php
index c3022148b0a..06c307d00d2 100644
--- a/core/Migrations/Version15000Date20181029084625.php
+++ b/core/Migrations/Version15000Date20181029084625.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -32,7 +14,6 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version15000Date20181029084625 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version16000Date20190207141427.php b/core/Migrations/Version16000Date20190207141427.php
index 837715a6838..3e94748062b 100644
--- a/core/Migrations/Version16000Date20190207141427.php
+++ b/core/Migrations/Version16000Date20190207141427.php
@@ -3,40 +3,18 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version16000Date20190207141427 extends SimpleMigrationStep {
-
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
@@ -78,7 +56,7 @@ class Version16000Date20190207141427 extends SimpleMigrationStep {
]);
$table->setPrimaryKey(['collection_id', 'resource_type', 'resource_id'], 'crr_pk');
-// $table->addUniqueIndex(['collection_id', 'resource_type', 'resource_id'], 'collres_unique_res');
+ // $table->addUniqueIndex(['collection_id', 'resource_type', 'resource_id'], 'collres_unique_res');
}
if (!$schema->hasTable('collres_accesscache')) {
@@ -108,7 +86,7 @@ class Version16000Date20190207141427 extends SimpleMigrationStep {
]);
$table->setPrimaryKey(['user_id', 'collection_id', 'resource_type', 'resource_id'], 'cra_pk');
-// $table->addUniqueIndex(['user_id', 'collection_id', 'resource_type', 'resource_id'], 'collres_unique_user');
+ // $table->addUniqueIndex(['user_id', 'collection_id', 'resource_type', 'resource_id'], 'collres_unique_user');
$table->addIndex(['user_id', 'resource_type', 'resource_id'], 'collres_user_res');
$table->addIndex(['user_id', 'collection_id'], 'collres_user_coll');
}
diff --git a/core/Migrations/Version16000Date20190212081545.php b/core/Migrations/Version16000Date20190212081545.php
index 00ca7f84592..bb45f411bcd 100644
--- a/core/Migrations/Version16000Date20190212081545.php
+++ b/core/Migrations/Version16000Date20190212081545.php
@@ -3,34 +3,14 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
diff --git a/core/Migrations/Version16000Date20190427105638.php b/core/Migrations/Version16000Date20190427105638.php
index dbad19d9b54..3664485e83c 100644
--- a/core/Migrations/Version16000Date20190427105638.php
+++ b/core/Migrations/Version16000Date20190427105638.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019 Daniel Kesselberg <mail@danielkesselberg.de>
- *
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -33,12 +15,9 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version16000Date20190427105638 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- private $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ private IDBConnection $connection,
+ ) {
}
/**
diff --git a/core/Migrations/Version16000Date20190428150708.php b/core/Migrations/Version16000Date20190428150708.php
index 14645925d3d..1dcc108a0d7 100644
--- a/core/Migrations/Version16000Date20190428150708.php
+++ b/core/Migrations/Version16000Date20190428150708.php
@@ -3,39 +3,18 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019 Daniel Kesselberg <mail@danielkesselberg.de>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version16000Date20190428150708 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version17000Date20190514105811.php b/core/Migrations/Version17000Date20190514105811.php
index 53c4cd67647..b603e85c8f6 100644
--- a/core/Migrations/Version17000Date20190514105811.php
+++ b/core/Migrations/Version17000Date20190514105811.php
@@ -3,40 +3,18 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019 Morris Jobke <hey@morrisjobke.de>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version17000Date20190514105811 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
@@ -68,7 +46,7 @@ class Version17000Date20190514105811 extends SimpleMigrationStep {
'default' => 0,
]);
$table->setPrimaryKey(['fileid'], 'fce_pk');
-// $table->addUniqueIndex(['fileid'], 'fce_fileid_idx');
+ // $table->addUniqueIndex(['fileid'], 'fce_fileid_idx');
$table->addIndex(['creation_time'], 'fce_ctime_idx');
$table->addIndex(['upload_time'], 'fce_utime_idx');
}
diff --git a/core/Migrations/Version18000Date20190920085628.php b/core/Migrations/Version18000Date20190920085628.php
index 9384abeed30..6ba05838d86 100644
--- a/core/Migrations/Version18000Date20190920085628.php
+++ b/core/Migrations/Version18000Date20190920085628.php
@@ -3,45 +3,22 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version18000Date20190920085628 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- protected $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
}
/**
diff --git a/core/Migrations/Version18000Date20191014105105.php b/core/Migrations/Version18000Date20191014105105.php
index 740a03ba5d1..adfd65a4dc2 100644
--- a/core/Migrations/Version18000Date20191014105105.php
+++ b/core/Migrations/Version18000Date20191014105105.php
@@ -3,45 +3,22 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\IDBConnection;
-use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
class Version18000Date20191014105105 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- protected $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
}
/**
diff --git a/core/Migrations/Version18000Date20191204114856.php b/core/Migrations/Version18000Date20191204114856.php
index 9fec994ba44..fca1a9c43b8 100644
--- a/core/Migrations/Version18000Date20191204114856.php
+++ b/core/Migrations/Version18000Date20191204114856.php
@@ -3,41 +3,21 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
use OCP\DB\ISchemaWrapper;
use OCP\IDBConnection;
-use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
class Version18000Date20191204114856 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- protected $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
}
/**
diff --git a/core/Migrations/Version19000Date20200211083441.php b/core/Migrations/Version19000Date20200211083441.php
index 4e5c48a3b88..2f8b46ad772 100644
--- a/core/Migrations/Version19000Date20200211083441.php
+++ b/core/Migrations/Version19000Date20200211083441.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -53,7 +35,7 @@ class Version19000Date20200211083441 extends SimpleMigrationStep {
]);
$table->addColumn('public_key_credential_id', 'string', [
'notnull' => true,
- 'length' => 255
+ 'length' => 512
]);
$table->addColumn('data', 'text', [
'notnull' => true,
diff --git a/core/Migrations/Version20000Date20201109081915.php b/core/Migrations/Version20000Date20201109081915.php
index 6e23c0b4bfd..285eaa124fc 100644
--- a/core/Migrations/Version20000Date20201109081915.php
+++ b/core/Migrations/Version20000Date20201109081915.php
@@ -3,25 +3,8 @@
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/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -43,7 +26,7 @@ class Version20000Date20201109081915 extends SimpleMigrationStep {
$result = $this->ensureColumnIsNullable($schema, 'share', 'password_by_talk');
$result = $this->ensureColumnIsNullable($schema, 'share', 'hide_download') || $result;
-// $result = $this->ensureColumnIsNullable($schema, 'credentials', 'user') || $result;
+ // $result = $this->ensureColumnIsNullable($schema, 'credentials', 'user') || $result;
$result = $this->ensureColumnIsNullable($schema, 'authtoken', 'password_invalid') || $result;
$result = $this->ensureColumnIsNullable($schema, 'collres_accesscache', 'access') || $result;
diff --git a/core/Migrations/Version20000Date20201109081918.php b/core/Migrations/Version20000Date20201109081918.php
index 9ebdd40aaf2..a24b1ab82b4 100644
--- a/core/Migrations/Version20000Date20201109081918.php
+++ b/core/Migrations/Version20000Date20201109081918.php
@@ -3,44 +3,22 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Robin Appelman <robin@icewind.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version20000Date20201109081918 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- protected $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
}
/**
@@ -101,9 +79,9 @@ class Version20000Date20201109081918 extends SimpleMigrationStep {
$result = $query->execute();
while ($row = $result->fetch()) {
- $insert->setParameter('user', (string) $row['user'])
- ->setParameter('identifier', (string) $row['identifier'])
- ->setParameter('credentials', (string) $row['credentials']);
+ $insert->setParameter('user', (string)$row['user'])
+ ->setParameter('identifier', (string)$row['identifier'])
+ ->setParameter('credentials', (string)$row['credentials']);
$insert->execute();
}
$result->closeCursor();
diff --git a/core/Migrations/Version20000Date20201109081919.php b/core/Migrations/Version20000Date20201109081919.php
index 4c78dd901bd..c283490e26b 100644
--- a/core/Migrations/Version20000Date20201109081919.php
+++ b/core/Migrations/Version20000Date20201109081919.php
@@ -3,25 +3,8 @@
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/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -31,7 +14,6 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version20000Date20201109081919 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
diff --git a/core/Migrations/Version20000Date20201111081915.php b/core/Migrations/Version20000Date20201111081915.php
index e310549e286..af2965a12ed 100644
--- a/core/Migrations/Version20000Date20201111081915.php
+++ b/core/Migrations/Version20000Date20201111081915.php
@@ -3,25 +3,8 @@
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/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version21000Date20201120141228.php b/core/Migrations/Version21000Date20201120141228.php
index 274b9a2084e..ac20cbfd577 100644
--- a/core/Migrations/Version21000Date20201120141228.php
+++ b/core/Migrations/Version21000Date20201120141228.php
@@ -3,26 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version21000Date20201202095923.php b/core/Migrations/Version21000Date20201202095923.php
index c087447f050..a96bdd5a1fc 100644
--- a/core/Migrations/Version21000Date20201202095923.php
+++ b/core/Migrations/Version21000Date20201202095923.php
@@ -3,32 +3,14 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
use Closure;
-use OCP\DB\Types;
use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
diff --git a/core/Migrations/Version21000Date20210119195004.php b/core/Migrations/Version21000Date20210119195004.php
index 7b74031cbae..ec136e4e8b2 100644
--- a/core/Migrations/Version21000Date20210119195004.php
+++ b/core/Migrations/Version21000Date20210119195004.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2020 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version21000Date20210309185126.php b/core/Migrations/Version21000Date20210309185126.php
index 1a55a106ba4..e03e0a24b3e 100644
--- a/core/Migrations/Version21000Date20210309185126.php
+++ b/core/Migrations/Version21000Date20210309185126.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version21000Date20210309185127.php b/core/Migrations/Version21000Date20210309185127.php
index d50a2620797..35efc1e5ab7 100644
--- a/core/Migrations/Version21000Date20210309185127.php
+++ b/core/Migrations/Version21000Date20210309185127.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version22000Date20210216080825.php b/core/Migrations/Version22000Date20210216080825.php
index c4191807cac..c8bfe38f2bc 100644
--- a/core/Migrations/Version22000Date20210216080825.php
+++ b/core/Migrations/Version22000Date20210216080825.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version23000Date20210721100600.php b/core/Migrations/Version23000Date20210721100600.php
index d247811f8b9..a611c0c4b36 100644
--- a/core/Migrations/Version23000Date20210721100600.php
+++ b/core/Migrations/Version23000Date20210721100600.php
@@ -1,36 +1,17 @@
<?php
/**
- * @copyright Copyright (c) 2021 Nextcloud GmbH
- *
- * @author Carl Schwan <carl@carlschwan.eu>
- *
- * @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 <https://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-
namespace OC\Core\Migrations;
use Closure;
use OCP\DB\ISchemaWrapper;
-use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
class Version23000Date20210721100600 extends SimpleMigrationStep {
-
/**
* @param IOutput $output
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
@@ -41,22 +22,24 @@ class Version23000Date20210721100600 extends SimpleMigrationStep {
/** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
- $table = $schema->createTable('authorized_groups');
- $table->addColumn('id', 'integer', [
- 'autoincrement' => true,
- 'notnull' => true,
- ]);
- $table->addColumn('group_id', 'string', [
- 'notnull' => true,
- 'length' => 200
- ]);
- $table->addColumn('class', 'string', [
- 'notnull' => true,
- 'length' => 200,
- ]);
+ if (!$schema->hasTable('authorized_groups')) {
+ $table = $schema->createTable('authorized_groups');
+ $table->addColumn('id', 'integer', [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ ]);
+ $table->addColumn('group_id', 'string', [
+ 'notnull' => true,
+ 'length' => 200
+ ]);
+ $table->addColumn('class', 'string', [
+ 'notnull' => true,
+ 'length' => 200,
+ ]);
- $table->setPrimaryKey(['id']);
- $table->addIndex(['group_id'], 'admindel_groupid_idx');
- return $schema;
+ $table->setPrimaryKey(['id']);
+ $table->addIndex(['group_id'], 'admindel_groupid_idx');
+ return $schema;
+ }
}
}
diff --git a/core/Migrations/Version23000Date20210906132259.php b/core/Migrations/Version23000Date20210906132259.php
index d4476a4d36d..422b96fa397 100644
--- a/core/Migrations/Version23000Date20210906132259.php
+++ b/core/Migrations/Version23000Date20210906132259.php
@@ -1,7 +1,10 @@
<?php
declare(strict_types=1);
-
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
namespace OC\Core\Migrations;
use Closure;
@@ -23,24 +26,24 @@ class Version23000Date20210906132259 extends SimpleMigrationStep {
* Therefore it was dropped with Version24000Date20211213081506
* and then recreated with a primary key in Version24000Date20211213081604
*/
-// /** @var ISchemaWrapper $schema */
-// $schema = $schemaClosure();
-//
-// $hasTable = $schema->hasTable(self::TABLE_NAME);
-//
-// if (!$hasTable) {
-// $table = $schema->createTable(self::TABLE_NAME);
-// $table->addColumn('hash', Types::STRING, [
-// 'notnull' => true,
-// 'length' => 128,
-// ]);
-// $table->addColumn('delete_after', Types::DATETIME, [
-// 'notnull' => true,
-// ]);
-// $table->addIndex(['hash'], 'ratelimit_hash');
-// $table->addIndex(['delete_after'], 'ratelimit_delete_after');
-// return $schema;
-// }
+ // /** @var ISchemaWrapper $schema */
+ // $schema = $schemaClosure();
+ //
+ // $hasTable = $schema->hasTable(self::TABLE_NAME);
+ //
+ // if (!$hasTable) {
+ // $table = $schema->createTable(self::TABLE_NAME);
+ // $table->addColumn('hash', Types::STRING, [
+ // 'notnull' => true,
+ // 'length' => 128,
+ // ]);
+ // $table->addColumn('delete_after', Types::DATETIME, [
+ // 'notnull' => true,
+ // ]);
+ // $table->addIndex(['hash'], 'ratelimit_hash');
+ // $table->addIndex(['delete_after'], 'ratelimit_delete_after');
+ // return $schema;
+ // }
return null;
}
diff --git a/core/Migrations/Version23000Date20210930122352.php b/core/Migrations/Version23000Date20210930122352.php
index e67d4237ec9..1e1df825429 100644
--- a/core/Migrations/Version23000Date20210930122352.php
+++ b/core/Migrations/Version23000Date20210930122352.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2021 Christopher Ng <chrng8@gmail.com>
- *
- * @author Christopher Ng <chrng8@gmail.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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version23000Date20211203110726.php b/core/Migrations/Version23000Date20211203110726.php
index caeb55a4db3..c91645ddeb3 100644
--- a/core/Migrations/Version23000Date20211203110726.php
+++ b/core/Migrations/Version23000Date20211203110726.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2021 Christopher Ng <chrng8@gmail.com>
- *
- * @author Christopher Ng <chrng8@gmail.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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version23000Date20211213203940.php b/core/Migrations/Version23000Date20211213203940.php
index 943edbbd300..f31f13a14d7 100644
--- a/core/Migrations/Version23000Date20211213203940.php
+++ b/core/Migrations/Version23000Date20211213203940.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2021 Christopher Ng <chrng8@gmail.com>
- *
- * @author Christopher Ng <chrng8@gmail.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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -29,10 +12,9 @@ namespace OC\Core\Migrations;
use OCP\Migration\BigIntMigration;
class Version23000Date20211213203940 extends BigIntMigration {
-
/**
* @return array Returns an array with the following structure
- * ['table1' => ['column1', 'column2'], ...]
+ * ['table1' => ['column1', 'column2'], ...]
*/
protected function getColumnsByTable() {
return [
diff --git a/core/Migrations/Version24000Date20211210141942.php b/core/Migrations/Version24000Date20211210141942.php
index ea85e331d55..50b1d89557e 100644
--- a/core/Migrations/Version24000Date20211210141942.php
+++ b/core/Migrations/Version24000Date20211210141942.php
@@ -2,25 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -37,12 +20,9 @@ use OCP\Migration\SimpleMigrationStep;
*
*/
class Version24000Date20211210141942 extends SimpleMigrationStep {
-
- /** @var IDBConnection */
- protected $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
}
/**
diff --git a/core/Migrations/Version24000Date20211213081506.php b/core/Migrations/Version24000Date20211213081506.php
index dd9d2626e18..ad46d1a8890 100644
--- a/core/Migrations/Version24000Date20211213081506.php
+++ b/core/Migrations/Version24000Date20211213081506.php
@@ -2,23 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version24000Date20211213081604.php b/core/Migrations/Version24000Date20211213081604.php
index 38ceba93b2e..3e557817d33 100644
--- a/core/Migrations/Version24000Date20211213081604.php
+++ b/core/Migrations/Version24000Date20211213081604.php
@@ -2,23 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2021 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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version24000Date20211222112246.php b/core/Migrations/Version24000Date20211222112246.php
index 4c09c8802ab..2bc3e1a3fca 100644
--- a/core/Migrations/Version24000Date20211222112246.php
+++ b/core/Migrations/Version24000Date20211222112246.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright 2021 Vitor Mattos <vitor@php.rio>
- *
- * @author Vitor Mattos <vitor@php.rio>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version24000Date20211230140012.php b/core/Migrations/Version24000Date20211230140012.php
index fc013338862..cda9a6d5530 100644
--- a/core/Migrations/Version24000Date20211230140012.php
+++ b/core/Migrations/Version24000Date20211230140012.php
@@ -2,25 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2022 Julius Härtl <jus@bitgrid.net>
- *
- * @author Julius Härtl <jus@bitgrid.net>
- *
- * @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/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
@@ -33,11 +16,9 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
class Version24000Date20211230140012 extends SimpleMigrationStep {
- /** @var IDBConnection */
- protected $connection;
-
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
}
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
diff --git a/core/Migrations/Version24000Date20220131153041.php b/core/Migrations/Version24000Date20220131153041.php
index fd2902c1713..f1dc6af776d 100644
--- a/core/Migrations/Version24000Date20220131153041.php
+++ b/core/Migrations/Version24000Date20220131153041.php
@@ -2,25 +2,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2022 Joas Schilling <coding@nextcloud.com>
- *
- * @author Joas Schilling <coding@nextcloud.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/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version24000Date20220202150027.php b/core/Migrations/Version24000Date20220202150027.php
index 76a3ae8c73c..4533d34380a 100644
--- a/core/Migrations/Version24000Date20220202150027.php
+++ b/core/Migrations/Version24000Date20220202150027.php
@@ -1,7 +1,10 @@
<?php
declare(strict_types=1);
-
+/**
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
namespace OC\Core\Migrations;
use Closure;
@@ -30,6 +33,7 @@ class Version24000Date20220202150027 extends SimpleMigrationStep {
'notnull' => false,
'length' => 128,
]);
+ $table->addIndex(['mount_provider_class'], 'mounts_class_index');
return $schema;
}
return null;
diff --git a/core/Migrations/Version24000Date20220404230027.php b/core/Migrations/Version24000Date20220404230027.php
index a650fcb7021..df24ec29e6c 100644
--- a/core/Migrations/Version24000Date20220404230027.php
+++ b/core/Migrations/Version24000Date20220404230027.php
@@ -2,24 +2,9 @@
declare(strict_types=1);
/**
- * @copyright Copyright 2022 Carl Schwan <carl@carlschwan.eu>
- *
- * @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/>
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OC\Core\Migrations;
use Closure;
@@ -40,23 +25,27 @@ class Version24000Date20220404230027 extends SimpleMigrationStep {
* @return null|ISchemaWrapper
*/
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
- /** @var ISchemaWrapper $schema */
- $schema = $schemaClosure();
+ // /** @var ISchemaWrapper $schema */
+ // $schema = $schemaClosure();
+
+ // if (!$schema->hasTable('file_metadata')) {
+ // $table = $schema->createTable('file_metadata');
+ // $table->addColumn('id', Types::BIGINT, [
+ // 'notnull' => true,
+ // ]);
+ // $table->addColumn('group_name', Types::STRING, [
+ // 'notnull' => true,
+ // 'length' => 50,
+ // ]);
+ // $table->addColumn('value', Types::TEXT, [
+ // 'notnull' => false,
+ // 'default' => '',
+ // ]);
+ // $table->setPrimaryKey(['id', 'group_name'], 'file_metadata_idx');
+
+ // return $schema;
+ // }
- if (!$schema->hasTable('file_metadata')) {
- $table = $schema->createTable('file_metadata');
- $table->addColumn('id', Types::INTEGER, [
- 'notnull' => true,
- ]);
- $table->addColumn('group_name', Types::STRING, [
- 'notnull' => true,
- 'length' => 50,
- ]);
- $table->addColumn('metadata', Types::JSON, [
- 'notnull' => true,
- ]);
- $table->setPrimaryKey(['id', 'group_name'], 'file_metadata_idx');
- }
- return $schema;
+ return null;
}
}
diff --git a/core/Migrations/Version24000Date20220425072957.php b/core/Migrations/Version24000Date20220425072957.php
index 87d62873c6b..5737249fa22 100644
--- a/core/Migrations/Version24000Date20220425072957.php
+++ b/core/Migrations/Version24000Date20220425072957.php
@@ -3,25 +3,8 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2022 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/>.
- *
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OC\Core\Migrations;
diff --git a/core/Migrations/Version25000Date20220515204012.php b/core/Migrations/Version25000Date20220515204012.php
new file mode 100644
index 00000000000..7f7c6b6cee2
--- /dev/null
+++ b/core/Migrations/Version25000Date20220515204012.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2019 ownCloud GmbH
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version25000Date20220515204012 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if ($schema->hasTable('share')) {
+ $shareTable = $schema->getTable('share');
+
+ if (!$shareTable->hasColumn('attributes')) {
+ $shareTable->addColumn(
+ 'attributes',
+ Types::JSON,
+ [
+ 'default' => null,
+ 'notnull' => false
+ ]
+ );
+ }
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version25000Date20220602190540.php b/core/Migrations/Version25000Date20220602190540.php
new file mode 100644
index 00000000000..999a0c50e60
--- /dev/null
+++ b/core/Migrations/Version25000Date20220602190540.php
@@ -0,0 +1,39 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version25000Date20220602190540 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $comments = $schema->getTable('comments');
+ if (!$comments->hasColumn('expire_date')) {
+ $comments->addColumn('expire_date', Types::DATETIME, [
+ 'notnull' => false,
+ ]);
+ $comments->addIndex(['expire_date'], 'expire_date');
+ return $schema;
+ }
+ return null;
+ }
+}
diff --git a/core/Migrations/Version25000Date20220905140840.php b/core/Migrations/Version25000Date20220905140840.php
new file mode 100644
index 00000000000..29d881c4777
--- /dev/null
+++ b/core/Migrations/Version25000Date20220905140840.php
@@ -0,0 +1,39 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version25000Date20220905140840 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $authTokenTable = $schema->getTable('authtoken');
+ if (!$authTokenTable->hasColumn('password_hash')) {
+ $authTokenTable->addColumn('password_hash', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 255,
+ ]);
+ return $schema;
+ }
+ return null;
+ }
+}
diff --git a/core/Migrations/Version25000Date20221007010957.php b/core/Migrations/Version25000Date20221007010957.php
new file mode 100644
index 00000000000..dbd7f68ed34
--- /dev/null
+++ b/core/Migrations/Version25000Date20221007010957.php
@@ -0,0 +1,54 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\IDBConnection;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * User background settings handling was moved from the
+ * dashboard app to the theming app so we migrate the
+ * respective preference values here
+ *
+ */
+class Version25000Date20221007010957 extends SimpleMigrationStep {
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ $cleanUpQuery = $this->connection->getQueryBuilder();
+ $cleanUpQuery->delete('preferences')
+ ->where($cleanUpQuery->expr()->eq('appid', $cleanUpQuery->createNamedParameter('theming')))
+ ->andWhere($cleanUpQuery->expr()->orX(
+ $cleanUpQuery->expr()->eq('configkey', $cleanUpQuery->createNamedParameter('background')),
+ $cleanUpQuery->expr()->eq('configkey', $cleanUpQuery->createNamedParameter('backgroundVersion')),
+ ));
+ $cleanUpQuery->executeStatement();
+
+ $updateQuery = $this->connection->getQueryBuilder();
+ $updateQuery->update('preferences')
+ ->set('appid', $updateQuery->createNamedParameter('theming'))
+ ->where($updateQuery->expr()->eq('appid', $updateQuery->createNamedParameter('dashboard')))
+ ->andWhere($updateQuery->expr()->orX(
+ $updateQuery->expr()->eq('configkey', $updateQuery->createNamedParameter('background')),
+ $updateQuery->expr()->eq('configkey', $updateQuery->createNamedParameter('backgroundVersion')),
+ ));
+ $updateQuery->executeStatement();
+ }
+}
diff --git a/core/Migrations/Version27000Date20220613163520.php b/core/Migrations/Version27000Date20220613163520.php
new file mode 100644
index 00000000000..4a5601b6cd5
--- /dev/null
+++ b/core/Migrations/Version27000Date20220613163520.php
@@ -0,0 +1,34 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version27000Date20220613163520 extends SimpleMigrationStep {
+ public function name(): string {
+ return 'Add mountpoint path to mounts table unique index';
+ }
+
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('mounts');
+ if ($table->hasIndex('mounts_user_root_index')) {
+ $table->dropIndex('mounts_user_root_index');
+ // new index gets added with "add missing indexes"
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version27000Date20230309104325.php b/core/Migrations/Version27000Date20230309104325.php
new file mode 100644
index 00000000000..a15f9228211
--- /dev/null
+++ b/core/Migrations/Version27000Date20230309104325.php
@@ -0,0 +1,74 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\IDBConnection;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Migrate oc_file_metadata.metadata as JSON type to oc_file_metadata.value a STRING type
+ * @see \OC\Metadata\FileMetadata
+ */
+class Version27000Date20230309104325 extends SimpleMigrationStep {
+ public function __construct(
+ private IDBConnection $connection,
+ ) {
+ }
+
+ /**
+ * @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): ?ISchemaWrapper {
+ // /** @var ISchemaWrapper $schema */
+ // $schema = $schemaClosure();
+ // $metadataTable = $schema->getTable('file_metadata');
+
+ // if ($metadataTable->hasColumn('value')) {
+ // return null;
+ // }
+
+ // $metadataTable->addColumn('value', Types::TEXT, [
+ // 'notnull' => false,
+ // 'default' => '',
+ // ]);
+ // return $schema;
+ return null;
+ }
+
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return void
+ */
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options) {
+ /** @var ISchemaWrapper $schema */
+ // $schema = $schemaClosure();
+ // $metadataTable = $schema->getTable('file_metadata');
+
+ // if (!$metadataTable->hasColumn('metadata')) {
+ // return;
+ // }
+
+ // $this->connection
+ // ->getQueryBuilder()
+ // ->update('file_metadata')
+ // ->set('value', 'metadata')
+ // ->executeStatement();
+ }
+}
diff --git a/core/Migrations/Version27000Date20230309104802.php b/core/Migrations/Version27000Date20230309104802.php
new file mode 100644
index 00000000000..d5c8577fcf4
--- /dev/null
+++ b/core/Migrations/Version27000Date20230309104802.php
@@ -0,0 +1,40 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Migrate oc_file_metadata.metadata as JSON type to oc_file_metadata.value a STRING type
+ * @see \OC\Metadata\FileMetadata
+ */
+class Version27000Date20230309104802 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): ?ISchemaWrapper {
+ // /** @var ISchemaWrapper $schema */
+ // $schema = $schemaClosure();
+ // $metadataTable = $schema->getTable('file_metadata');
+
+ // if ($metadataTable->hasColumn('metadata')) {
+ // $metadataTable->dropColumn('metadata');
+ // return $schema;
+ // }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version28000Date20230616104802.php b/core/Migrations/Version28000Date20230616104802.php
new file mode 100644
index 00000000000..05acf8183ba
--- /dev/null
+++ b/core/Migrations/Version28000Date20230616104802.php
@@ -0,0 +1,85 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Introduce llm_tasks table
+ */
+class Version28000Date20230616104802 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if (!$schema->hasTable('llm_tasks')) {
+ $table = $schema->createTable('llm_tasks');
+
+ $table->addColumn('id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 64,
+ 'autoincrement' => true,
+ ]);
+ $table->addColumn('type', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 255,
+ ]);
+ $table->addColumn('input', Types::TEXT, [
+ 'notnull' => true,
+ ]);
+ $table->addColumn('output', Types::TEXT, [
+ 'notnull' => false,
+ ]);
+ $table->addColumn('status', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 6,
+ 'default' => 0,
+ ]);
+ $table->addColumn('user_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 64,
+ ]);
+ $table->addColumn('app_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 32,
+ 'default' => '',
+ ]);
+ $table->addColumn('identifier', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 255,
+ 'default' => '',
+ ]);
+ $table->addColumn('last_updated', 'integer', [
+ 'notnull' => false,
+ 'length' => 4,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+
+ $table->setPrimaryKey(['id'], 'llm_tasks_id_index');
+ $table->addUniqueIndex(['status', 'type'], 'llm_tasks_status_type');
+ $table->addIndex(['last_updated'], 'llm_tasks_updated');
+
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version28000Date20230728104802.php b/core/Migrations/Version28000Date20230728104802.php
new file mode 100644
index 00000000000..e9dadcfd836
--- /dev/null
+++ b/core/Migrations/Version28000Date20230728104802.php
@@ -0,0 +1,94 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Introduce textprocessing_tasks table
+ */
+class Version28000Date20230728104802 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+ $changed = false;
+
+ if ($schema->hasTable('llm_tasks')) {
+ $schema->dropTable('llm_tasks');
+ $changed = true;
+ }
+ if (!$schema->hasTable('textprocessing_tasks')) {
+ $table = $schema->createTable('textprocessing_tasks');
+
+ $table->addColumn('id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 64,
+ 'autoincrement' => true,
+ ]);
+ $table->addColumn('type', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 255,
+ ]);
+ $table->addColumn('input', Types::TEXT, [
+ 'notnull' => true,
+ ]);
+ $table->addColumn('output', Types::TEXT, [
+ 'notnull' => false,
+ ]);
+ $table->addColumn('status', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 6,
+ 'default' => 0,
+ ]);
+ $table->addColumn('user_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 64,
+ ]);
+ $table->addColumn('app_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 32,
+ 'default' => '',
+ ]);
+ $table->addColumn('identifier', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 255,
+ 'default' => '',
+ ]);
+ $table->addColumn('last_updated', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 4,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+
+ $table->setPrimaryKey(['id'], 'tp_tasks_id_index');
+ $table->addIndex(['last_updated'], 'tp_tasks_updated');
+ $table->addIndex(['status', 'type'], 'tp_tasks_status_type_nonunique');
+
+ $changed = true;
+ }
+
+ if ($changed) {
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version28000Date20230803221055.php b/core/Migrations/Version28000Date20230803221055.php
new file mode 100644
index 00000000000..60b9fa4ed3d
--- /dev/null
+++ b/core/Migrations/Version28000Date20230803221055.php
@@ -0,0 +1,50 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Adjust textprocessing_tasks table
+ */
+class Version28000Date20230803221055 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+ $changed = false;
+
+ if ($schema->hasTable('textprocessing_tasks')) {
+ $table = $schema->getTable('textprocessing_tasks');
+
+ $column = $table->getColumn('user_id');
+ $column->setNotnull(false);
+
+ if (!$table->hasIndex('tp_tasks_uid_appid_ident')) {
+ $table->addIndex(['user_id', 'app_id', 'identifier'], 'tp_tasks_uid_appid_ident');
+ $changed = true;
+ }
+ }
+
+ if ($changed) {
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version28000Date20230906104802.php b/core/Migrations/Version28000Date20230906104802.php
new file mode 100644
index 00000000000..9eec3ad8da1
--- /dev/null
+++ b/core/Migrations/Version28000Date20230906104802.php
@@ -0,0 +1,82 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Introduce text2image_tasks table
+ */
+class Version28000Date20230906104802 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+ if (!$schema->hasTable('text2image_tasks')) {
+ $table = $schema->createTable('text2image_tasks');
+
+ $table->addColumn('id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 64,
+ 'autoincrement' => true,
+ ]);
+ $table->addColumn('input', Types::TEXT, [
+ 'notnull' => true,
+ ]);
+ $table->addColumn('status', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 6,
+ 'default' => 0,
+ ]);
+ $table->addColumn('number_of_images', Types::INTEGER, [
+ 'notnull' => true,
+ 'default' => 1,
+ ]);
+ $table->addColumn('user_id', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 64,
+ ]);
+ $table->addColumn('app_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 32,
+ 'default' => '',
+ ]);
+ $table->addColumn('identifier', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 255,
+ 'default' => '',
+ ]);
+ $table->addColumn('last_updated', Types::DATETIME, [
+ 'notnull' => false,
+ ]);
+ $table->addColumn('completion_expected_at', Types::DATETIME, [
+ 'notnull' => false,
+ ]);
+
+ $table->setPrimaryKey(['id'], 't2i_tasks_id_index');
+ $table->addIndex(['last_updated'], 't2i_tasks_updated');
+ $table->addIndex(['status'], 't2i_tasks_status');
+ $table->addIndex(['user_id', 'app_id', 'identifier'], 't2i_tasks_uid_appid_ident');
+
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version28000Date20231004103301.php b/core/Migrations/Version28000Date20231004103301.php
new file mode 100644
index 00000000000..e1cd619f749
--- /dev/null
+++ b/core/Migrations/Version28000Date20231004103301.php
@@ -0,0 +1,82 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+// Create new tables for the Metadata API (files_metadata and files_metadata_index).
+class Version28000Date20231004103301 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+ $updated = false;
+
+ if (!$schema->hasTable('files_metadata')) {
+ $table = $schema->createTable('files_metadata');
+ $table->addColumn('id', Types::BIGINT, [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ 'length' => 20,
+ ]);
+ $table->addColumn('file_id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 20,
+ ]);
+ $table->addColumn('json', Types::TEXT);
+ $table->addColumn('sync_token', Types::STRING, [
+ 'length' => 15,
+ ]);
+ $table->addColumn('last_update', Types::DATETIME);
+
+ $table->setPrimaryKey(['id']);
+ $table->addUniqueIndex(['file_id'], 'files_meta_fileid');
+ $updated = true;
+ }
+
+ if (!$schema->hasTable('files_metadata_index')) {
+ $table = $schema->createTable('files_metadata_index');
+ $table->addColumn('id', Types::BIGINT, [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ 'length' => 20,
+ ]);
+ $table->addColumn('file_id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 20,
+ ]);
+ $table->addColumn('meta_key', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 31,
+ ]);
+ $table->addColumn('meta_value_string', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 63,
+ ]);
+ $table->addColumn('meta_value_int', Types::BIGINT, [
+ 'notnull' => false,
+ 'length' => 11,
+ ]);
+
+ $table->setPrimaryKey(['id']);
+ $table->addIndex(['file_id', 'meta_key', 'meta_value_string'], 'f_meta_index');
+ $table->addIndex(['file_id', 'meta_key', 'meta_value_int'], 'f_meta_index_i');
+ $updated = true;
+ }
+
+ if (!$updated) {
+ return null;
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version28000Date20231103104802.php b/core/Migrations/Version28000Date20231103104802.php
new file mode 100644
index 00000000000..238c792991d
--- /dev/null
+++ b/core/Migrations/Version28000Date20231103104802.php
@@ -0,0 +1,44 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Introduce completion_expected_at column in textprocessing_tasks table
+ */
+class Version28000Date20231103104802 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+ if ($schema->hasTable('textprocessing_tasks')) {
+ $table = $schema->getTable('textprocessing_tasks');
+
+ if (!$table->hasColumn('completion_expected_at')) {
+ $table->addColumn('completion_expected_at', Types::DATETIME, [
+ 'notnull' => false,
+ ]);
+ return $schema;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version28000Date20231126110901.php b/core/Migrations/Version28000Date20231126110901.php
new file mode 100644
index 00000000000..95984df61bb
--- /dev/null
+++ b/core/Migrations/Version28000Date20231126110901.php
@@ -0,0 +1,51 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Create new fields for type and lazy loading in appconfig for the new IAppConfig API.
+ */
+class Version28000Date20231126110901 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ return null;
+
+ /**
+ * this migration was needed during Nextcloud 28 to prep the migration to 29 and a
+ * new IAppConfig as its API require 'lazy' and 'type' database field.
+ *
+ * some changes in the migration process and the expected result have made its execution
+ * useless, therefore ignored.
+ *
+ * @see Version29000Date20240124132201
+ * @see Version29000Date20240124132202
+ */
+ // /** @var ISchemaWrapper $schema */
+ // $schema = $schemaClosure();
+ //
+ // if (!$schema->hasTable('appconfig')) {
+ // return null;
+ // }
+ //
+ // $table = $schema->getTable('appconfig');
+ // if ($table->hasColumn('lazy')) {
+ // return null;
+ // }
+ //
+ // // type=2 means value is typed as MIXED
+ // $table->addColumn('type', Types::INTEGER, ['notnull' => true, 'default' => 2]);
+ // $table->addColumn('lazy', Types::BOOLEAN, ['notnull' => false, 'default' => false]);
+ //
+ // return $schema;
+ }
+}
diff --git a/core/Migrations/Version28000Date20240828142927.php b/core/Migrations/Version28000Date20240828142927.php
new file mode 100644
index 00000000000..e36c27add1c
--- /dev/null
+++ b/core/Migrations/Version28000Date20240828142927.php
@@ -0,0 +1,83 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\IDBConnection;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\Attributes\ModifyColumn;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Migrate the argument_hash column of oc_jobs to use sha256 instead of md5.
+ */
+#[ModifyColumn(table: 'jobs', name: 'argument_hash', type: ColumnType::STRING, description: 'Increase the column size from 32 to 64')]
+#[ModifyColumn(table: 'jobs', name: 'argument_hash', type: ColumnType::STRING, description: 'Rehash the argument_hash column using sha256')]
+class Version28000Date20240828142927 extends SimpleMigrationStep {
+ public function __construct(
+ protected IDBConnection $connection,
+ ) {
+ }
+
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ // Increase the column size from 32 to 64
+ $table = $schema->getTable('jobs');
+ $table->modifyColumn('argument_hash', [
+ 'notnull' => false,
+ 'length' => 64,
+ ]);
+
+ return $schema;
+ }
+
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ $chunkSize = 1000;
+ $offset = 0;
+ $nullHash = hash('sha256', 'null');
+
+ $selectQuery = $this->connection->getQueryBuilder()
+ ->select('*')
+ ->from('jobs')
+ ->setMaxResults($chunkSize);
+
+ $insertQuery = $this->connection->getQueryBuilder();
+ $insertQuery->update('jobs')
+ ->set('argument_hash', $insertQuery->createParameter('argument_hash'))
+ ->where($insertQuery->expr()->eq('id', $insertQuery->createParameter('id')));
+
+ do {
+ $result = $selectQuery
+ ->setFirstResult($offset)
+ ->executeQuery();
+
+ $jobs = $result->fetchAll();
+ $count = count($jobs);
+
+ foreach ($jobs as $jobRow) {
+ if ($jobRow['argument'] === 'null') {
+ $hash = $nullHash;
+ } else {
+ $hash = hash('sha256', $jobRow['argument']);
+ }
+ $insertQuery->setParameter('id', (string)$jobRow['id'], IQueryBuilder::PARAM_INT);
+ $insertQuery->setParameter('argument_hash', $hash);
+ $insertQuery->executeStatement();
+ }
+
+ $offset += $chunkSize;
+ } while ($count === $chunkSize);
+ }
+}
diff --git a/core/Migrations/Version29000Date20231126110901.php b/core/Migrations/Version29000Date20231126110901.php
new file mode 100644
index 00000000000..cbed14bf2f5
--- /dev/null
+++ b/core/Migrations/Version29000Date20231126110901.php
@@ -0,0 +1,55 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Create new fields for type and lazy loading in appconfig for the new IAppConfig API.
+ */
+class Version29000Date20231126110901 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('appconfig');
+ if ($table->hasColumn('lazy')) {
+ return null;
+ }
+
+ /**
+ * This code is now useless, after a discussion about boolean on oracle;
+ * it has been decided to use another type for the lazy field
+ *
+ * a better migration process is available there:
+ *
+ * @see Version29000Date20240124132201 for the revert of current migration
+ * @see Version29000Date20240124132202 for the new migration process
+ */
+ return null;
+
+ // // type=2 means value is typed as MIXED
+ // $table->addColumn('type', Types::INTEGER, ['notnull' => true, 'default' => 2]);
+ // $table->addColumn('lazy', Types::BOOLEAN, ['notnull' => false, 'default' => false]);
+ //
+ // if ($table->hasIndex('appconfig_config_key_index')) {
+ // $table->dropIndex('appconfig_config_key_index');
+ // }
+ //
+ // $table->addIndex(['lazy'], 'ac_lazy_i');
+ // $table->addIndex(['appid', 'lazy'], 'ac_app_lazy_i');
+ // $table->addIndex(['appid', 'lazy', 'configkey'], 'ac_app_lazy_key_i');
+ //
+ // return $schema;
+ }
+}
diff --git a/core/Migrations/Version29000Date20231213104850.php b/core/Migrations/Version29000Date20231213104850.php
new file mode 100644
index 00000000000..41f0594a33e
--- /dev/null
+++ b/core/Migrations/Version29000Date20231213104850.php
@@ -0,0 +1,50 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version29000Date20231213104850 extends SimpleMigrationStep {
+ /**
+ * @param IOutput $output
+ * @param Closure(): ISchemaWrapper $schemaClosure
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('comments');
+ $modified = false;
+
+ if (!$table->hasColumn('reference_id')) {
+ $modified = true;
+ $table->addColumn('reference_id', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 64,
+ ]);
+ }
+
+ if (!$table->hasColumn('meta_data')) {
+ $modified = true;
+ $table->addColumn('meta_data', Types::TEXT, [
+ 'notnull' => false,
+ 'default' => '',
+ ]);
+ }
+
+ return $modified ? $schema : null;
+ }
+}
diff --git a/core/Migrations/Version29000Date20240124132201.php b/core/Migrations/Version29000Date20240124132201.php
new file mode 100644
index 00000000000..a3166435704
--- /dev/null
+++ b/core/Migrations/Version29000Date20240124132201.php
@@ -0,0 +1,58 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Create new column for type and remove previous lazy column in appconfig (will be recreated by Version29000Date20240124132202) for the new IAppConfig API.
+ */
+class Version29000Date20240124132201 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('appconfig');
+
+ // we will drop 'lazy', we start to clean related indexes first
+ if ($table->hasIndex('ac_lazy_i')) {
+ $table->dropIndex('ac_lazy_i');
+ }
+
+ if ($table->hasIndex('ac_app_lazy_i')) {
+ $table->dropIndex('ac_app_lazy_i');
+ }
+
+ if ($table->hasIndex('ac_app_lazy_key_i')) {
+ $table->dropIndex('ac_app_lazy_key_i');
+ }
+
+ if ($table->hasColumn('lazy')) {
+ $table->dropColumn('lazy');
+ }
+
+ // create field 'type' if it does not exist yet, or fix the fact that it is missing 'unsigned'
+ if (!$table->hasColumn('type')) {
+ $table->addColumn('type', Types::INTEGER, ['notnull' => true, 'default' => 2, 'unsigned' => true]);
+ } else {
+ $table->modifyColumn('type', ['notnull' => true, 'default' => 2, 'unsigned' => true]);
+ }
+
+ // not needed anymore
+ if ($table->hasIndex('appconfig_config_key_index')) {
+ $table->dropIndex('appconfig_config_key_index');
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version29000Date20240124132202.php b/core/Migrations/Version29000Date20240124132202.php
new file mode 100644
index 00000000000..3246adf21a7
--- /dev/null
+++ b/core/Migrations/Version29000Date20240124132202.php
@@ -0,0 +1,36 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Create new column and index for lazy loading in appconfig for the new IAppConfig API.
+ */
+class Version29000Date20240124132202 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('appconfig');
+ $table->addColumn('lazy', Types::SMALLINT, ['notnull' => true, 'default' => 0, 'length' => 1, 'unsigned' => true]);
+
+ /**
+ * we only need an index on lazy, the group 'appid'+'configkey' already
+ * exists as primary ({@see Version13000Date20170718121200})
+ */
+ $table->addIndex(['lazy'], 'ac_lazy_i');
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version29000Date20240131122720.php b/core/Migrations/Version29000Date20240131122720.php
new file mode 100644
index 00000000000..abd5e73165a
--- /dev/null
+++ b/core/Migrations/Version29000Date20240131122720.php
@@ -0,0 +1,40 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ *
+ */
+class Version29000Date20240131122720 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure(): ISchemaWrapper $schemaClosure
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $tableProperties = $schema->getTable('properties');
+
+ if ($tableProperties->hasIndex('property_index')
+ && $tableProperties->hasIndex('properties_path_index')) {
+
+ $tableProperties->dropIndex('property_index');
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version30000Date20240429122720.php b/core/Migrations/Version30000Date20240429122720.php
new file mode 100644
index 00000000000..eeefc8dd10c
--- /dev/null
+++ b/core/Migrations/Version30000Date20240429122720.php
@@ -0,0 +1,105 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddIndex;
+use OCP\Migration\Attributes\CreateTable;
+use OCP\Migration\Attributes\IndexType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ *
+ */
+#[CreateTable(table: 'taskprocessing_tasks')]
+#[AddIndex(table: 'taskprocessing_tasks', type: IndexType::PRIMARY)]
+#[AddIndex(table: 'taskprocessing_tasks', type: IndexType::INDEX)]
+#[AddIndex(table: 'taskprocessing_tasks', type: IndexType::INDEX)]
+#[AddIndex(table: 'taskprocessing_tasks', type: IndexType::INDEX)]
+class Version30000Date20240429122720 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if (!$schema->hasTable('taskprocessing_tasks')) {
+ $table = $schema->createTable('taskprocessing_tasks');
+
+ $table->addColumn('id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 64,
+ 'autoincrement' => true,
+ ]);
+ $table->addColumn('type', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 255,
+ ]);
+ $table->addColumn('input', Types::TEXT, [
+ 'notnull' => true,
+ ]);
+ $table->addColumn('output', Types::TEXT, [
+ 'notnull' => false,
+ ]);
+ $table->addColumn('status', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 6,
+ 'default' => 0,
+ ]);
+ $table->addColumn('user_id', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 64,
+ ]);
+ $table->addColumn('app_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 32,
+ 'default' => '',
+ ]);
+ $table->addColumn('custom_id', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 255,
+ 'default' => '',
+ ]);
+ $table->addColumn('last_updated', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 4,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+ $table->addColumn('completion_expected_at', Types::DATETIME, [
+ 'notnull' => false,
+ ]);
+ $table->addColumn('progress', Types::FLOAT, [
+ 'notnull' => false,
+ 'default' => 0,
+ ]);
+ $table->addColumn('error_message', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 255,
+ ]);
+
+ $table->setPrimaryKey(['id'], 'taskp_tasks_id_index');
+ $table->addIndex(['status', 'type'], 'taskp_tasks_status_type');
+ $table->addIndex(['last_updated'], 'taskp_tasks_updated');
+ $table->addIndex(['user_id', 'app_id', 'custom_id'], 'taskp_tasks_uid_appid_cid');
+
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version30000Date20240708160048.php b/core/Migrations/Version30000Date20240708160048.php
new file mode 100644
index 00000000000..83edd84e56a
--- /dev/null
+++ b/core/Migrations/Version30000Date20240708160048.php
@@ -0,0 +1,67 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddColumn;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ *
+ */
+#[AddColumn(table: 'taskprocessing_tasks', name: 'scheduled_at', type: ColumnType::INTEGER)]
+#[AddColumn(table: 'taskprocessing_tasks', name: 'started_at', type: ColumnType::INTEGER)]
+#[AddColumn(table: 'taskprocessing_tasks', name: 'ended_at', type: ColumnType::INTEGER)]
+class Version30000Date20240708160048 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if ($schema->hasTable('taskprocessing_tasks')) {
+ $table = $schema->getTable('taskprocessing_tasks');
+
+ if (!$table->hasColumn('scheduled_at')) {
+ $table->addColumn('scheduled_at', Types::INTEGER, [
+ 'notnull' => false,
+ 'default' => null,
+ 'unsigned' => true,
+ ]);
+ }
+ if (!$table->hasColumn('started_at')) {
+ $table->addColumn('started_at', Types::INTEGER, [
+ 'notnull' => false,
+ 'default' => null,
+ 'unsigned' => true,
+ ]);
+ }
+ if (!$table->hasColumn('ended_at')) {
+ $table->addColumn('ended_at', Types::INTEGER, [
+ 'notnull' => false,
+ 'default' => null,
+ 'unsigned' => true,
+ ]);
+ }
+
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version30000Date20240717111406.php b/core/Migrations/Version30000Date20240717111406.php
new file mode 100644
index 00000000000..558ac432387
--- /dev/null
+++ b/core/Migrations/Version30000Date20240717111406.php
@@ -0,0 +1,55 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddColumn;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ *
+ */
+#[AddColumn(table: 'taskprocessing_tasks', name: 'webhook_uri', type: ColumnType::STRING)]
+#[AddColumn(table: 'taskprocessing_tasks', name: 'webhook_method', type: ColumnType::STRING)]
+class Version30000Date20240717111406 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if ($schema->hasTable('taskprocessing_tasks')) {
+ $table = $schema->getTable('taskprocessing_tasks');
+
+ $table->addColumn('webhook_uri', Types::STRING, [
+ 'notnull' => false,
+ 'default' => null,
+ 'length' => 4000,
+ ]);
+ $table->addColumn('webhook_method', Types::STRING, [
+ 'notnull' => false,
+ 'default' => null,
+ 'length' => 64,
+ ]);
+
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version30000Date20240814180800.php b/core/Migrations/Version30000Date20240814180800.php
new file mode 100644
index 00000000000..199af8cc0aa
--- /dev/null
+++ b/core/Migrations/Version30000Date20240814180800.php
@@ -0,0 +1,37 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version30000Date20240814180800 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('webauthn');
+ $column = $table->getColumn('public_key_credential_id');
+
+ /**
+ * There is no maximum length defined in the standard,
+ * most common the length is between 128 and 200 characters,
+ * but as we store it not in plain data but base64 encoded the length can grow about 1/3.
+ * We had a regression with 'Nitrokey 3' which created IDs with 196 byte length -> 262 bytes encoded base64.
+ * So to be save we increase the size to 512 bytes.
+ */
+ if ($column->getLength() < 512) {
+ $column->setLength(512);
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version30000Date20240815080800.php b/core/Migrations/Version30000Date20240815080800.php
new file mode 100644
index 00000000000..5212467ece0
--- /dev/null
+++ b/core/Migrations/Version30000Date20240815080800.php
@@ -0,0 +1,30 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 S1m <git@sgougeon.fr>
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddColumn;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+#[AddColumn(table: 'webauthn', name: 'user_verification', type: ColumnType::BOOLEAN)]
+class Version30000Date20240815080800 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('webauthn');
+ $table->addColumn('user_verification', Types::BOOLEAN, ['notnull' => false, 'default' => false]);
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version30000Date20240906095113.php b/core/Migrations/Version30000Date20240906095113.php
new file mode 100644
index 00000000000..7c3efe41bc3
--- /dev/null
+++ b/core/Migrations/Version30000Date20240906095113.php
@@ -0,0 +1,42 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\Attributes\ModifyColumn;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+#[ModifyColumn(table: 'taskprocessing_tasks', name: 'error_message', description: 'Increase column length to 4000 bytes to support longer error messages')]
+class Version30000Date20240906095113 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure(): ISchemaWrapper $schemaClosure
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if ($schema->hasTable('taskprocessing_tasks')) {
+ $table = $schema->getTable('taskprocessing_tasks');
+ $column = $table->getColumn('error_message');
+
+ if ($column->getLength() < 4000) {
+ $column->setLength(4000);
+ }
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version31000Date20240101084401.php b/core/Migrations/Version31000Date20240101084401.php
new file mode 100644
index 00000000000..60792dcac21
--- /dev/null
+++ b/core/Migrations/Version31000Date20240101084401.php
@@ -0,0 +1,135 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddIndex;
+use OCP\Migration\Attributes\CreateTable;
+use OCP\Migration\Attributes\IndexType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * @since 31.0.0
+ */
+#[CreateTable(
+ table: 'sec_signatory',
+ columns: ['id', 'key_id_sum', 'key_id', 'host', 'provider_id', 'account', 'public_key', 'metadata', 'type', 'status', 'creation', 'last_updated'],
+ description: 'new table to store remove public/private key pairs'
+)]
+#[AddIndex(
+ table: 'sec_signatory',
+ type: IndexType::PRIMARY
+)]
+#[AddIndex(
+ table: 'sec_signatory',
+ type: IndexType::UNIQUE,
+ description: 'confirm uniqueness per host, provider and account'
+)]
+#[AddIndex(
+ table: 'sec_signatory',
+ type: IndexType::INDEX,
+ description: 'to search on key and provider'
+)]
+class Version31000Date20240101084401 extends SimpleMigrationStep {
+ public function description(): string {
+ return "creating new table 'sec_signatory' to store remote signatories";
+ }
+
+ public function name(): string {
+ return 'create sec_signatory';
+ }
+
+ /**
+ * @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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if (!$schema->hasTable('sec_signatory')) {
+ $table = $schema->createTable('sec_signatory');
+ $table->addColumn('id', Types::BIGINT, [
+ 'notnull' => true,
+ 'length' => 64,
+ 'autoincrement' => true,
+ 'unsigned' => true,
+ ]);
+ // key_id_sum will store a hash version of the key_id, more appropriate for search/index
+ $table->addColumn('key_id_sum', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 127,
+ ]);
+ $table->addColumn('key_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 512
+ ]);
+ // host/provider_id/account will help generate a unique entry, not based on key_id
+ // this way, a spoofed instance cannot publish a new key_id for same host+provider_id
+ // account will be used only to stored multiple keys for the same provider_id/host
+ $table->addColumn('host', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 512
+ ]);
+ $table->addColumn('provider_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 31,
+ ]);
+ $table->addColumn('account', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 127,
+ 'default' => ''
+ ]);
+ $table->addColumn('public_key', Types::TEXT, [
+ 'notnull' => true,
+ 'default' => ''
+ ]);
+ $table->addColumn('metadata', Types::TEXT, [
+ 'notnull' => true,
+ 'default' => '[]'
+ ]);
+ // type+status are informative about the trustability of remote instance and status of the signatory
+ $table->addColumn('type', Types::SMALLINT, [
+ 'notnull' => true,
+ 'length' => 2,
+ 'default' => 9
+ ]);
+ $table->addColumn('status', Types::SMALLINT, [
+ 'notnull' => true,
+ 'length' => 2,
+ 'default' => 0,
+ ]);
+ $table->addColumn('creation', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 4,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+ $table->addColumn('last_updated', Types::INTEGER, [
+ 'notnull' => false,
+ 'length' => 4,
+ 'default' => 0,
+ 'unsigned' => true,
+ ]);
+
+ $table->setPrimaryKey(['id'], 'sec_sig_id');
+ $table->addUniqueIndex(['provider_id', 'host', 'account'], 'sec_sig_unic');
+ $table->addIndex(['key_id_sum', 'provider_id'], 'sec_sig_key');
+
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/core/Migrations/Version31000Date20240814184402.php b/core/Migrations/Version31000Date20240814184402.php
new file mode 100644
index 00000000000..14b32a704be
--- /dev/null
+++ b/core/Migrations/Version31000Date20240814184402.php
@@ -0,0 +1,54 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddColumn;
+use OCP\Migration\Attributes\AddIndex;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\Attributes\DropIndex;
+use OCP\Migration\Attributes\IndexType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Create new column and index for lazy loading in preferences for the new IUserPreferences API.
+ */
+#[AddColumn(table: 'preferences', name: 'lazy', type: ColumnType::SMALLINT, description: 'lazy loading to user preferences')]
+#[AddColumn(table: 'preferences', name: 'type', type: ColumnType::SMALLINT, description: 'typed values to user preferences')]
+#[AddColumn(table: 'preferences', name: 'flag', type: ColumnType::INTEGER, description: 'bitflag about the value')]
+#[AddColumn(table: 'preferences', name: 'indexed', type: ColumnType::INTEGER, description: 'non-array value can be set as indexed')]
+#[DropIndex(table: 'preferences', type: IndexType::INDEX, description: 'remove previous app/key index', notes: ['will be re-created to include \'indexed\' field'])]
+#[AddIndex(table: 'preferences', type: IndexType::INDEX, description: 'new index including user+lazy')]
+#[AddIndex(table: 'preferences', type: IndexType::INDEX, description: 'new index including app/key and indexed')]
+class Version31000Date20240814184402 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('preferences');
+ $table->addColumn('lazy', Types::SMALLINT, ['notnull' => true, 'default' => 0, 'length' => 1, 'unsigned' => true]);
+ $table->addColumn('type', Types::SMALLINT, ['notnull' => true, 'default' => 0, 'unsigned' => true]);
+ $table->addColumn('flags', Types::INTEGER, ['notnull' => true, 'default' => 0, 'unsigned' => true]);
+ $table->addColumn('indexed', Types::STRING, ['notnull' => false, 'default' => '', 'length' => 64]);
+
+ // removing this index from Version13000Date20170718121200
+ // $table->addIndex(['appid', 'configkey'], 'preferences_app_key');
+ if ($table->hasIndex('preferences_app_key')) {
+ $table->dropIndex('preferences_app_key');
+ }
+
+ $table->addIndex(['userid', 'lazy'], 'prefs_uid_lazy_i');
+ $table->addIndex(['appid', 'configkey', 'indexed', 'flags'], 'prefs_app_key_ind_fl_i');
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version31000Date20250213102442.php b/core/Migrations/Version31000Date20250213102442.php
new file mode 100644
index 00000000000..d267e867129
--- /dev/null
+++ b/core/Migrations/Version31000Date20250213102442.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\Attributes\DropIndex;
+use OCP\Migration\Attributes\IndexType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ * Drop index fs_id_storage_size
+ *
+ * Added in https://github.com/nextcloud/server/pull/29118
+ * Matching request changed in https://github.com/nextcloud/server/pull/50781
+ */
+#[DropIndex(table: 'filecache', type: IndexType::INDEX, description: 'remove index fs_id_storage_size (concurrent with PRIMARY KEY)')]
+class Version31000Date20250213102442 extends SimpleMigrationStep {
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('filecache');
+
+ // Index added in Version13000Date20170718121200
+ if ($table->hasIndex('fs_id_storage_size')) {
+ $table->dropIndex('fs_id_storage_size');
+ }
+
+ return $schema;
+ }
+}
diff --git a/core/Migrations/Version32000Date20250620081925.php b/core/Migrations/Version32000Date20250620081925.php
new file mode 100644
index 00000000000..13e1ac0f87d
--- /dev/null
+++ b/core/Migrations/Version32000Date20250620081925.php
@@ -0,0 +1,16 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+/**
+ * Run the old migration Version24000Date20211210141942 again.
+ */
+class Version32000Date20250620081925 extends Version24000Date20211210141942 {
+}
diff --git a/core/Migrations/Version32000Date20250731062008.php b/core/Migrations/Version32000Date20250731062008.php
new file mode 100644
index 00000000000..bf15e4a0b22
--- /dev/null
+++ b/core/Migrations/Version32000Date20250731062008.php
@@ -0,0 +1,106 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\IDBConnection;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+use Override;
+
+/**
+ * Make sure vcategory entries are unique per user and type
+ * This migration will clean up existing duplicates
+ * and add a unique constraint to prevent future duplicates.
+ */
+class Version32000Date20250731062008 extends SimpleMigrationStep {
+ public function __construct(
+ private IDBConnection $connection,
+ ) {
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure(): ISchemaWrapper $schemaClosure
+ * @param array $options
+ */
+ #[Override]
+ public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ // Clean up duplicate categories before adding unique constraint
+ $this->cleanupDuplicateCategories($output);
+ }
+
+ /**
+ * Clean up duplicate categories
+ */
+ private function cleanupDuplicateCategories(IOutput $output) {
+ $output->info('Starting cleanup of duplicate vcategory records...');
+
+ // Find all categories, ordered to identify duplicates
+ $qb = $this->connection->getQueryBuilder();
+ $qb->select('id', 'uid', 'type', 'category')
+ ->from('vcategory')
+ ->orderBy('uid')
+ ->addOrderBy('type')
+ ->addOrderBy('category')
+ ->addOrderBy('id');
+
+ $result = $qb->executeQuery();
+
+ $seen = [];
+ $duplicateCount = 0;
+
+ while ($category = $result->fetch()) {
+ $key = $category['uid'] . '|' . $category['type'] . '|' . $category['category'];
+ $categoryId = (int)$category['id'];
+
+ if (!isset($seen[$key])) {
+ // First occurrence - keep this one
+ $seen[$key] = $categoryId;
+ continue;
+ }
+
+ // Duplicate found
+ $keepId = $seen[$key];
+ $duplicateCount++;
+
+ $output->info("Found duplicate: keeping ID $keepId, removing ID $categoryId");
+
+ // Update object references
+ $updateQb = $this->connection->getQueryBuilder();
+ $updateQb->update('vcategory_to_object')
+ ->set('categoryid', $updateQb->createNamedParameter($keepId))
+ ->where($updateQb->expr()->eq('categoryid', $updateQb->createNamedParameter($categoryId)));
+
+ $affectedRows = $updateQb->executeStatement();
+ if ($affectedRows > 0) {
+ $output->info(" - Updated $affectedRows object references from category $categoryId to $keepId");
+ }
+
+ // Remove duplicate category record
+ $deleteQb = $this->connection->getQueryBuilder();
+ $deleteQb->delete('vcategory')
+ ->where($deleteQb->expr()->eq('id', $deleteQb->createNamedParameter($categoryId)));
+
+ $deleteQb->executeStatement();
+ $output->info(" - Deleted duplicate category record ID $categoryId");
+
+ }
+
+ $result->closeCursor();
+
+ if ($duplicateCount === 0) {
+ $output->info('No duplicate categories found');
+ } else {
+ $output->info("Duplicate cleanup completed - processed $duplicateCount duplicates");
+ }
+ }
+}
diff --git a/core/Migrations/Version32000Date20250806110519.php b/core/Migrations/Version32000Date20250806110519.php
new file mode 100644
index 00000000000..c498a1cc820
--- /dev/null
+++ b/core/Migrations/Version32000Date20250806110519.php
@@ -0,0 +1,49 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Migrations;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\Attributes\AddColumn;
+use OCP\Migration\Attributes\ColumnType;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+/**
+ *
+ */
+#[AddColumn(table: 'taskprocessing_tasks', name: 'allow_cleanup', type: ColumnType::SMALLINT)]
+class Version32000Date20250806110519 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): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ if ($schema->hasTable('taskprocessing_tasks')) {
+ $table = $schema->getTable('taskprocessing_tasks');
+ if (!$table->hasColumn('allow_cleanup')) {
+ $table->addColumn('allow_cleanup', Types::SMALLINT, [
+ 'notnull' => true,
+ 'default' => 1,
+ 'unsigned' => true,
+ ]);
+ return $schema;
+ }
+ }
+
+ return null;
+ }
+}