fix(systemtags): objecttype index registration

Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
pull/50200/head
skjnldsv 1 year ago
parent 47eedf9228
commit 57ffca36a7
  1. 13
      apps/systemtags/lib/Migration/Version31000Date20241018063111.php
  2. 2
      apps/systemtags/lib/Migration/Version31000Date20241114171300.php
  3. 6
      core/Application.php
  4. 2
      core/Migrations/Version13000Date20170718121200.php

@ -13,31 +13,20 @@ use Closure;
use Doctrine\DBAL\Types\Types;
use OCP\DB\ISchemaWrapper;
use OCP\Migration\Attributes\AddColumn;
use OCP\Migration\Attributes\AddIndex;
use OCP\Migration\Attributes\ColumnType;
use OCP\Migration\Attributes\IndexType;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
/**
* Add objecttype index to systemtag_object_mapping
* Add etag column to systemtag
*/
#[AddColumn(table: 'systemtag', name: 'etag', type: ColumnType::STRING, description: 'Adding etag for systemtag table to prevent conflicts')]
#[AddIndex(table: 'systemtag_object_mapping', type: IndexType::INDEX, description: 'Adding objecttype index to systemtag_object_mapping')]
class Version31000Date20241018063111 extends SimpleMigrationStep {
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
/** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if ($schema->hasTable('systemtag_object_mapping')) {
$table = $schema->getTable('systemtag_object_mapping');
if (!$table->hasIndex('systag_objecttype')) {
$table->addIndex(['objecttype'], 'systag_objecttype');
}
}
if ($schema->hasTable('systemtag')) {
$table = $schema->getTable('systemtag');

@ -18,7 +18,7 @@ use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
/**
* Add objecttype index to systemtag_object_mapping
* Add color column to systemtag
*/
#[AddColumn(table: 'systemtag', name: 'color', type: ColumnType::STRING, description: 'Adding color for systemtag table')]
class Version31000Date20241114171300 extends SimpleMigrationStep {

@ -235,6 +235,12 @@ class Application extends App {
'systag_by_objectid',
['objectid']
);
$event->addMissingIndex(
'systemtag_object_mapping',
'systag_objecttype',
['objecttype']
);
});
$eventDispatcher->addListener(AddMissingPrimaryKeyEvent::class, function (AddMissingPrimaryKeyEvent $event) {

@ -732,6 +732,8 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
$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')) {

Loading…
Cancel
Save