diff --git a/appinfo/info.xml b/appinfo/info.xml index 0787b0683..089f26b69 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -16,7 +16,7 @@ - 🚀 Get your project organized - 1.11.0-dev + 1.11.0-dev.1 agpl Julius Härtl diff --git a/lib/Db/CardMapper.php b/lib/Db/CardMapper.php index 5de8b5018..60938002c 100644 --- a/lib/Db/CardMapper.php +++ b/lib/Db/CardMapper.php @@ -306,8 +306,7 @@ public function findUnexposedDescriptionChances() { $qb = $this->db->getQueryBuilder(); $qb->select('id', 'title', 'duedate', 'notified', 'description_prev', 'last_editor', 'description') ->from('deck_cards') - ->where($qb->expr()->isNotNull('last_editor')) - ->andWhere($qb->expr()->isNotNull('description_prev')); + ->where($qb->expr()->isNotNull('last_editor')); return $this->findEntities($qb); } diff --git a/lib/Migration/Version1011Date20231106160059.php b/lib/Migration/Version1011Date20231106160059.php new file mode 100644 index 000000000..97428a225 --- /dev/null +++ b/lib/Migration/Version1011Date20231106160059.php @@ -0,0 +1,62 @@ + + * + * @author Your name + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OCA\Deck\Migration; + +use Closure; +use OCP\DB\ISchemaWrapper; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +class Version1011Date20231106160059 extends SimpleMigrationStep { + + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + $schema = $schemaClosure(); + + $createIndex = false; + + $table = $schema->getTable('deck_cards'); + + if (!$table->hasIndex('idx_last_editor')) { + $createIndex = true; + } + + if (!$createIndex) { + $index = $table->getIndex('idx_last_editor'); + if (in_array('description_prev', $index->getColumns(), true)) { + $table->dropIndex('idx_last_editor'); + $createIndex = true; + } + } + + if ($createIndex) { + $table->addIndex(['last_editor'], 'idx_last_editor'); + return $schema; + } + + return null; + } +} diff --git a/lib/Migration/Version10800Date20220422061816.php b/lib/Migration/Version10800Date20220422061816.php index c952da3d6..deee73efd 100644 --- a/lib/Migration/Version10800Date20220422061816.php +++ b/lib/Migration/Version10800Date20220422061816.php @@ -66,7 +66,7 @@ public function changeSchema(IOutput $output, Closure $schemaClosure, array $opt $indexAdded = $this->addIndex($schema, 'deck_cards', 'idx_last_editor', [ - 'last_editor', 'description_prev' + 'last_editor' /*, 'description_prev' */ ], [], // Adding a partial index on the description_prev as it is only used for a NULL check ['lengths' => [null, 1]]