@@ -20,13 +20,17 @@ public function up(Schema $schema): void
2020 $ this ->fillMetadataTables ();
2121 $ this ->addCurrentMetadataColumnToVersionTable ();
2222 $ this ->updateVersionTableColumns ();
23+ $ this ->dropVersionLinkTables ();
24+ $ this ->dropVersionTableFields ();
2325 }
2426
2527 public function down (Schema $ schema ): void
2628 {
2729 $ this ->dropMetadataTables ();
2830 $ this ->dropCurrentMetadataColumnFromVersionTable ();
2931 $ this ->revertVersionTableColumns ();
32+ $ this ->createVersionLinkTables ();
33+ $ this ->createVersionTableFields ();
3034 }
3135
3236 private function createMetadataTables (): void
@@ -340,6 +344,113 @@ public function updateVersionTableColumns(): void
340344 SQL);
341345 }
342346
347+ public function dropVersionLinkTables (): void
348+ {
349+ $ this ->addSql (<<<'SQL'
350+ ALTER TABLE version_conflict_link DROP CONSTRAINT fk_ad52d6c4bbc2705
351+ SQL);
352+ $ this ->addSql (<<<'SQL'
353+ ALTER TABLE version_dev_require_link DROP CONSTRAINT fk_98f2e46e4bbc2705
354+ SQL);
355+ $ this ->addSql (<<<'SQL'
356+ ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f4bbc2705
357+ SQL);
358+ $ this ->addSql (<<<'SQL'
359+ ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f115d4552
360+ SQL);
361+ $ this ->addSql (<<<'SQL'
362+ ALTER TABLE version_provide_link DROP CONSTRAINT fk_150ec10c4bbc2705
363+ SQL);
364+ $ this ->addSql (<<<'SQL'
365+ ALTER TABLE version_replace_link DROP CONSTRAINT fk_87f1b96a4bbc2705
366+ SQL);
367+ $ this ->addSql (<<<'SQL'
368+ ALTER TABLE version_require_link DROP CONSTRAINT fk_7a1caab14bbc2705
369+ SQL);
370+ $ this ->addSql (<<<'SQL'
371+ ALTER TABLE version_suggest_link DROP CONSTRAINT fk_de9b76884bbc2705
372+ SQL);
373+ $ this ->addSql (<<<'SQL'
374+ DROP TABLE version_conflict_link
375+ SQL);
376+ $ this ->addSql (<<<'SQL'
377+ DROP TABLE version_dev_require_link
378+ SQL);
379+ $ this ->addSql (<<<'SQL'
380+ DROP TABLE version_keyword
381+ SQL);
382+ $ this ->addSql (<<<'SQL'
383+ DROP TABLE version_provide_link
384+ SQL);
385+ $ this ->addSql (<<<'SQL'
386+ DROP TABLE version_replace_link
387+ SQL);
388+ $ this ->addSql (<<<'SQL'
389+ DROP TABLE version_require_link
390+ SQL);
391+ $ this ->addSql (<<<'SQL'
392+ DROP TABLE version_suggest_link
393+ SQL);
394+ }
395+
396+ public function dropVersionTableFields (): void
397+ {
398+ $ this ->addSql (<<<'SQL'
399+ ALTER TABLE version DROP package_name
400+ SQL);
401+ $ this ->addSql (<<<'SQL'
402+ ALTER TABLE version DROP description
403+ SQL);
404+ $ this ->addSql (<<<'SQL'
405+ ALTER TABLE version DROP readme
406+ SQL);
407+ $ this ->addSql (<<<'SQL'
408+ ALTER TABLE version DROP homepage
409+ SQL);
410+ $ this ->addSql (<<<'SQL'
411+ ALTER TABLE version DROP license
412+ SQL);
413+ $ this ->addSql (<<<'SQL'
414+ ALTER TABLE version DROP type
415+ SQL);
416+ $ this ->addSql (<<<'SQL'
417+ ALTER TABLE version DROP target_dir
418+ SQL);
419+ $ this ->addSql (<<<'SQL'
420+ ALTER TABLE version DROP source
421+ SQL);
422+ $ this ->addSql (<<<'SQL'
423+ ALTER TABLE version DROP dist
424+ SQL);
425+ $ this ->addSql (<<<'SQL'
426+ ALTER TABLE version DROP autoload
427+ SQL);
428+ $ this ->addSql (<<<'SQL'
429+ ALTER TABLE version DROP binaries
430+ SQL);
431+ $ this ->addSql (<<<'SQL'
432+ ALTER TABLE version DROP include_paths
433+ SQL);
434+ $ this ->addSql (<<<'SQL'
435+ ALTER TABLE version DROP php_ext
436+ SQL);
437+ $ this ->addSql (<<<'SQL'
438+ ALTER TABLE version DROP authors
439+ SQL);
440+ $ this ->addSql (<<<'SQL'
441+ ALTER TABLE version DROP support
442+ SQL);
443+ $ this ->addSql (<<<'SQL'
444+ ALTER TABLE version DROP funding
445+ SQL);
446+ $ this ->addSql (<<<'SQL'
447+ ALTER TABLE version DROP extra
448+ SQL);
449+ $ this ->addSql (<<<'SQL'
450+ ALTER TABLE version DROP released_at
451+ SQL);
452+ }
453+
343454 private function dropMetadataTables (): void
344455 {
345456 $ this ->addSql (<<<'SQL'
@@ -442,4 +553,199 @@ public function revertVersionTableColumns(): void
442553 CONSTRAINT fk_bf1cd3c3f44cabff FOREIGN KEY (package_id) REFERENCES package (id) NOT DEFERRABLE INITIALLY IMMEDIATE
443554 SQL);
444555 }
556+
557+ public function createVersionLinkTables (): void
558+ {
559+ $ this ->addSql (<<<'SQL'
560+ CREATE TABLE version_conflict_link (
561+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
562+ linked_package_name VARCHAR(191) NOT NULL,
563+ linked_version_constraint TEXT NOT NULL,
564+ version_id INT NOT NULL,
565+ PRIMARY KEY (id)
566+ )
567+ SQL);
568+ $ this ->addSql (<<<'SQL'
569+ CREATE INDEX idx_ad52d6c4bbc2705 ON version_conflict_link (version_id)
570+ SQL);
571+ $ this ->addSql (<<<'SQL'
572+ CREATE TABLE version_dev_require_link (
573+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
574+ linked_package_name VARCHAR(191) NOT NULL,
575+ linked_version_constraint TEXT NOT NULL,
576+ version_id INT NOT NULL,
577+ PRIMARY KEY (id)
578+ )
579+ SQL);
580+ $ this ->addSql (<<<'SQL'
581+ CREATE INDEX idx_98f2e46e4bbc2705 ON version_dev_require_link (version_id)
582+ SQL);
583+ $ this ->addSql (<<<'SQL'
584+ CREATE TABLE version_keyword (
585+ version_id INT NOT NULL,
586+ keyword_id INT NOT NULL,
587+ PRIMARY KEY (version_id, keyword_id)
588+ )
589+ SQL);
590+ $ this ->addSql (<<<'SQL'
591+ CREATE INDEX idx_a65a946f115d4552 ON version_keyword (keyword_id)
592+ SQL);
593+ $ this ->addSql (<<<'SQL'
594+ CREATE INDEX idx_a65a946f4bbc2705 ON version_keyword (version_id)
595+ SQL);
596+ $ this ->addSql (<<<'SQL'
597+ CREATE TABLE version_provide_link (
598+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
599+ linked_package_name VARCHAR(191) NOT NULL,
600+ linked_version_constraint TEXT NOT NULL,
601+ version_id INT NOT NULL,
602+ PRIMARY KEY (id)
603+ )
604+ SQL);
605+ $ this ->addSql (<<<'SQL'
606+ CREATE INDEX idx_150ec10c4bbc2705 ON version_provide_link (version_id)
607+ SQL);
608+ $ this ->addSql (<<<'SQL'
609+ CREATE TABLE version_replace_link (
610+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
611+ linked_package_name VARCHAR(191) NOT NULL,
612+ linked_version_constraint TEXT NOT NULL,
613+ version_id INT NOT NULL,
614+ PRIMARY KEY (id)
615+ )
616+ SQL);
617+ $ this ->addSql (<<<'SQL'
618+ CREATE INDEX idx_87f1b96a4bbc2705 ON version_replace_link (version_id)
619+ SQL);
620+ $ this ->addSql (<<<'SQL'
621+ CREATE TABLE version_require_link (
622+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
623+ linked_package_name VARCHAR(191) NOT NULL,
624+ linked_version_constraint TEXT NOT NULL,
625+ version_id INT NOT NULL,
626+ PRIMARY KEY (id)
627+ )
628+ SQL);
629+ $ this ->addSql (<<<'SQL'
630+ CREATE INDEX idx_7a1caab14bbc2705 ON version_require_link (version_id)
631+ SQL);
632+ $ this ->addSql (<<<'SQL'
633+ CREATE TABLE version_suggest_link (
634+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
635+ linked_package_name VARCHAR(191) NOT NULL,
636+ linked_version_constraint TEXT NOT NULL,
637+ version_id INT NOT NULL,
638+ PRIMARY KEY (id)
639+ )
640+ SQL);
641+ $ this ->addSql (<<<'SQL'
642+ CREATE INDEX idx_de9b76884bbc2705 ON version_suggest_link (version_id)
643+ SQL);
644+ $ this ->addSql (<<<'SQL'
645+ ALTER TABLE
646+ version_conflict_link
647+ ADD
648+ CONSTRAINT fk_ad52d6c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
649+ SQL);
650+ $ this ->addSql (<<<'SQL'
651+ ALTER TABLE
652+ version_dev_require_link
653+ ADD
654+ CONSTRAINT fk_98f2e46e4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
655+ SQL);
656+ $ this ->addSql (<<<'SQL'
657+ ALTER TABLE
658+ version_keyword
659+ ADD
660+ CONSTRAINT fk_a65a946f4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
661+ SQL);
662+ $ this ->addSql (<<<'SQL'
663+ ALTER TABLE
664+ version_keyword
665+ ADD
666+ CONSTRAINT fk_a65a946f115d4552 FOREIGN KEY (keyword_id) REFERENCES keyword (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
667+ SQL);
668+ $ this ->addSql (<<<'SQL'
669+ ALTER TABLE
670+ version_provide_link
671+ ADD
672+ CONSTRAINT fk_150ec10c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
673+ SQL);
674+ $ this ->addSql (<<<'SQL'
675+ ALTER TABLE
676+ version_replace_link
677+ ADD
678+ CONSTRAINT fk_87f1b96a4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
679+ SQL);
680+ $ this ->addSql (<<<'SQL'
681+ ALTER TABLE
682+ version_require_link
683+ ADD
684+ CONSTRAINT fk_7a1caab14bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
685+ SQL);
686+ $ this ->addSql (<<<'SQL'
687+ ALTER TABLE
688+ version_suggest_link
689+ ADD
690+ CONSTRAINT fk_de9b76884bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
691+ SQL);
692+ }
693+
694+ public function createVersionTableFields (): void
695+ {
696+ $ this ->addSql (<<<'SQL'
697+ ALTER TABLE version ADD package_name VARCHAR(255) NOT NULL
698+ SQL);
699+ $ this ->addSql (<<<'SQL'
700+ ALTER TABLE version ADD description TEXT DEFAULT NULL
701+ SQL);
702+ $ this ->addSql (<<<'SQL'
703+ ALTER TABLE version ADD readme TEXT DEFAULT NULL
704+ SQL);
705+ $ this ->addSql (<<<'SQL'
706+ ALTER TABLE version ADD homepage VARCHAR(255) DEFAULT NULL
707+ SQL);
708+ $ this ->addSql (<<<'SQL'
709+ ALTER TABLE version ADD license JSON NOT NULL
710+ SQL);
711+ $ this ->addSql (<<<'SQL'
712+ ALTER TABLE version ADD type VARCHAR(255) DEFAULT NULL
713+ SQL);
714+ $ this ->addSql (<<<'SQL'
715+ ALTER TABLE version ADD target_dir VARCHAR(255) DEFAULT NULL
716+ SQL);
717+ $ this ->addSql (<<<'SQL'
718+ ALTER TABLE version ADD source JSON DEFAULT NULL
719+ SQL);
720+ $ this ->addSql (<<<'SQL'
721+ ALTER TABLE version ADD dist JSON DEFAULT NULL
722+ SQL);
723+ $ this ->addSql (<<<'SQL'
724+ ALTER TABLE version ADD autoload JSON NOT NULL
725+ SQL);
726+ $ this ->addSql (<<<'SQL'
727+ ALTER TABLE version ADD binaries JSON DEFAULT NULL
728+ SQL);
729+ $ this ->addSql (<<<'SQL'
730+ ALTER TABLE version ADD include_paths JSON DEFAULT NULL
731+ SQL);
732+ $ this ->addSql (<<<'SQL'
733+ ALTER TABLE version ADD php_ext JSON DEFAULT NULL
734+ SQL);
735+ $ this ->addSql (<<<'SQL'
736+ ALTER TABLE version ADD authors JSON DEFAULT NULL
737+ SQL);
738+ $ this ->addSql (<<<'SQL'
739+ ALTER TABLE version ADD support JSON DEFAULT NULL
740+ SQL);
741+ $ this ->addSql (<<<'SQL'
742+ ALTER TABLE version ADD funding JSON DEFAULT NULL
743+ SQL);
744+ $ this ->addSql (<<<'SQL'
745+ ALTER TABLE version ADD extra JSON DEFAULT NULL
746+ SQL);
747+ $ this ->addSql (<<<'SQL'
748+ ALTER TABLE version ADD released_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
749+ SQL);
750+ }
445751}
0 commit comments