diff --git a/application/data/install/schema.sql b/application/data/install/schema.sql index 5aeaf9fe0..4a4e1088f 100644 --- a/application/data/install/schema.sql +++ b/application/data/install/schema.sql @@ -89,7 +89,7 @@ CREATE TABLE `media` ( `renderer` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `data` longtext COLLATE utf8mb4_unicode_ci COMMENT '(DC2Type:json_array)', `source` longtext COLLATE utf8mb4_unicode_ci, - `media_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `media_type` varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `storage_id` varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `extension` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `sha256` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL, @@ -103,6 +103,7 @@ CREATE TABLE `media` ( UNIQUE KEY `UNIQ_6A2CA10C5CC5DB90` (`storage_id`), KEY `IDX_6A2CA10C126F525E` (`item_id`), KEY `item_position` (`item_id`,`position`), + KEY `media_type` (`media_type`), CONSTRAINT `FK_6A2CA10C126F525E` FOREIGN KEY (`item_id`) REFERENCES `item` (`id`), CONSTRAINT `FK_6A2CA10CBF396750` FOREIGN KEY (`id`) REFERENCES `resource` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/application/data/migrations/20240219000000_AddIndexMediaType.php b/application/data/migrations/20240219000000_AddIndexMediaType.php new file mode 100644 index 000000000..4c4847307 --- /dev/null +++ b/application/data/migrations/20240219000000_AddIndexMediaType.php @@ -0,0 +1,19 @@ +executeStatement('ALTER TABLE `media` CHANGE `media_type` `media_type` varchar(190) COLLATE "utf8mb4_unicode_ci" NULL AFTER `source`;'); + $conn->executeStatement('ALTER TABLE `media` ADD INDEX `media_type` (`media_type`);'); + } catch (\Exception $e) { + // Index exists. + } + } +} diff --git a/application/src/Entity/Media.php b/application/src/Entity/Media.php index 25ee390c6..090a9eb7b 100644 --- a/application/src/Entity/Media.php +++ b/application/src/Entity/Media.php @@ -8,6 +8,10 @@ * @Index( * name="item_position", * columns={"item_id", "position"} + * ), + * @Index( + * name="media_type", + * columns={"media_type"} * ) * } * ) @@ -41,7 +45,7 @@ class Media extends Resource protected $source; /** - * @Column(nullable=true) + * @Column(nullable=true, length=190) */ protected $mediaType;