@@ -291,6 +291,13 @@ private function fillMetadataTables(): void
291291 INNER JOIN metadata metadata ON link.version_id = metadata.version_id
292292 SQL );
293293 }
294+
295+ $ this ->addSql (<<<'SQL'
296+ INSERT INTO metadata_keyword (metadata_id, keyword_id)
297+ SELECT metadata.id, vk.keyword_id
298+ FROM version_keyword vk
299+ INNER JOIN metadata metadata ON vk.version_id = metadata.version_id
300+ SQL);
294301 }
295302
296303 private function addCurrentMetadataColumnToVersionTable (): void
@@ -356,12 +363,6 @@ private function dropVersionLinkTables(): void
356363 $ this ->addSql (<<<'SQL'
357364 ALTER TABLE version_dev_require_link DROP CONSTRAINT fk_98f2e46e4bbc2705
358365 SQL);
359- $ this ->addSql (<<<'SQL'
360- ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f4bbc2705
361- SQL);
362- $ this ->addSql (<<<'SQL'
363- ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f115d4552
364- SQL);
365366 $ this ->addSql (<<<'SQL'
366367 ALTER TABLE version_provide_link DROP CONSTRAINT fk_150ec10c4bbc2705
367368 SQL);
@@ -380,9 +381,6 @@ private function dropVersionLinkTables(): void
380381 $ this ->addSql (<<<'SQL'
381382 DROP TABLE version_dev_require_link
382383 SQL);
383- $ this ->addSql (<<<'SQL'
384- DROP TABLE version_keyword
385- SQL);
386384 $ this ->addSql (<<<'SQL'
387385 DROP TABLE version_provide_link
388386 SQL);
@@ -395,6 +393,16 @@ private function dropVersionLinkTables(): void
395393 $ this ->addSql (<<<'SQL'
396394 DROP TABLE version_suggest_link
397395 SQL);
396+
397+ $ this ->addSql (<<<'SQL'
398+ ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f4bbc2705
399+ SQL);
400+ $ this ->addSql (<<<'SQL'
401+ ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f115d4552
402+ SQL);
403+ $ this ->addSql (<<<'SQL'
404+ DROP TABLE version_keyword
405+ SQL);
398406 }
399407
400408 private function dropVersionTableFields (): void
@@ -559,19 +567,6 @@ private function createVersionLinkTables(): void
559567 $ this ->addSql (<<<'SQL'
560568 CREATE INDEX idx_98f2e46e4bbc2705 ON version_dev_require_link (version_id)
561569 SQL);
562- $ this ->addSql (<<<'SQL'
563- CREATE TABLE version_keyword (
564- version_id INT NOT NULL,
565- keyword_id INT NOT NULL,
566- PRIMARY KEY (version_id, keyword_id)
567- )
568- SQL);
569- $ this ->addSql (<<<'SQL'
570- CREATE INDEX idx_a65a946f115d4552 ON version_keyword (keyword_id)
571- SQL);
572- $ this ->addSql (<<<'SQL'
573- CREATE INDEX idx_a65a946f4bbc2705 ON version_keyword (version_id)
574- SQL);
575570 $ this ->addSql (<<<'SQL'
576571 CREATE TABLE version_provide_link (
577572 id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
@@ -632,18 +627,6 @@ private function createVersionLinkTables(): void
632627 ADD
633628 CONSTRAINT fk_98f2e46e4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
634629 SQL);
635- $ this ->addSql (<<<'SQL'
636- ALTER TABLE
637- version_keyword
638- ADD
639- CONSTRAINT fk_a65a946f4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
640- SQL);
641- $ this ->addSql (<<<'SQL'
642- ALTER TABLE
643- version_keyword
644- ADD
645- CONSTRAINT fk_a65a946f115d4552 FOREIGN KEY (keyword_id) REFERENCES keyword (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
646- SQL);
647630 $ this ->addSql (<<<'SQL'
648631 ALTER TABLE
649632 version_provide_link
@@ -668,6 +651,32 @@ private function createVersionLinkTables(): void
668651 ADD
669652 CONSTRAINT fk_de9b76884bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
670653 SQL);
654+
655+ $ this ->addSql (<<<'SQL'
656+ CREATE TABLE version_keyword (
657+ version_id INT NOT NULL,
658+ keyword_id INT NOT NULL,
659+ PRIMARY KEY (version_id, keyword_id)
660+ )
661+ SQL);
662+ $ this ->addSql (<<<'SQL'
663+ CREATE INDEX idx_a65a946f115d4552 ON version_keyword (keyword_id)
664+ SQL);
665+ $ this ->addSql (<<<'SQL'
666+ CREATE INDEX idx_a65a946f4bbc2705 ON version_keyword (version_id)
667+ SQL);
668+ $ this ->addSql (<<<'SQL'
669+ ALTER TABLE
670+ version_keyword
671+ ADD
672+ CONSTRAINT fk_a65a946f4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
673+ SQL);
674+ $ this ->addSql (<<<'SQL'
675+ ALTER TABLE
676+ version_keyword
677+ ADD
678+ CONSTRAINT fk_a65a946f115d4552 FOREIGN KEY (keyword_id) REFERENCES keyword (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
679+ SQL);
671680 }
672681
673682 private function revertVersionTableColumns (): void
@@ -742,6 +751,19 @@ private function fillVersionTables(): void
742751 )
743752 SQL );
744753 }
754+
755+ $ this ->addSql (<<<'SQL'
756+ INSERT INTO version_keyword (version_id, keyword_id)
757+ SELECT version.id, mk.keyword_id
758+ FROM metadata_keyword mk
759+ INNER JOIN metadata metadata ON mk.metadata_id = metadata.id
760+ INNER JOIN version version ON version.current_metadata_id = metadata.id
761+ WHERE NOT EXISTS (
762+ SELECT 1 FROM version_keyword vk
763+ WHERE vk.version_id = version.id
764+ AND vk.keyword_id = mk.keyword_id
765+ )
766+ SQL);
745767 }
746768
747769 private function dropCurrentMetadataColumnFromVersionTable (): void
0 commit comments