@@ -20,10 +20,14 @@ 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 {
29+ $ this ->createVersionTableFields ();
30+ $ this ->createVersionLinkTables ();
2731 $ this ->revertVersionTableColumns ();
2832 $ this ->dropCurrentMetadataColumnFromVersionTable ();
2933 $ this ->fillVersionTables ();
@@ -351,6 +355,308 @@ private function updateVersionTableColumns(): void
351355 SQL);
352356 }
353357
358+ private function dropVersionLinkTables (): void
359+ {
360+ $ this ->addSql (<<<'SQL'
361+ ALTER TABLE version_conflict_link DROP CONSTRAINT fk_ad52d6c4bbc2705
362+ SQL);
363+ $ this ->addSql (<<<'SQL'
364+ ALTER TABLE version_dev_require_link DROP CONSTRAINT fk_98f2e46e4bbc2705
365+ SQL);
366+ $ this ->addSql (<<<'SQL'
367+ ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f4bbc2705
368+ SQL);
369+ $ this ->addSql (<<<'SQL'
370+ ALTER TABLE version_keyword DROP CONSTRAINT fk_a65a946f115d4552
371+ SQL);
372+ $ this ->addSql (<<<'SQL'
373+ ALTER TABLE version_provide_link DROP CONSTRAINT fk_150ec10c4bbc2705
374+ SQL);
375+ $ this ->addSql (<<<'SQL'
376+ ALTER TABLE version_replace_link DROP CONSTRAINT fk_87f1b96a4bbc2705
377+ SQL);
378+ $ this ->addSql (<<<'SQL'
379+ ALTER TABLE version_require_link DROP CONSTRAINT fk_7a1caab14bbc2705
380+ SQL);
381+ $ this ->addSql (<<<'SQL'
382+ ALTER TABLE version_suggest_link DROP CONSTRAINT fk_de9b76884bbc2705
383+ SQL);
384+ $ this ->addSql (<<<'SQL'
385+ DROP TABLE version_conflict_link
386+ SQL);
387+ $ this ->addSql (<<<'SQL'
388+ DROP TABLE version_dev_require_link
389+ SQL);
390+ $ this ->addSql (<<<'SQL'
391+ DROP TABLE version_keyword
392+ SQL);
393+ $ this ->addSql (<<<'SQL'
394+ DROP TABLE version_provide_link
395+ SQL);
396+ $ this ->addSql (<<<'SQL'
397+ DROP TABLE version_replace_link
398+ SQL);
399+ $ this ->addSql (<<<'SQL'
400+ DROP TABLE version_require_link
401+ SQL);
402+ $ this ->addSql (<<<'SQL'
403+ DROP TABLE version_suggest_link
404+ SQL);
405+ }
406+
407+ private function dropVersionTableFields (): void
408+ {
409+ $ this ->addSql (<<<'SQL'
410+ ALTER TABLE version DROP package_name
411+ SQL);
412+ $ this ->addSql (<<<'SQL'
413+ ALTER TABLE version DROP description
414+ SQL);
415+ $ this ->addSql (<<<'SQL'
416+ ALTER TABLE version DROP readme
417+ SQL);
418+ $ this ->addSql (<<<'SQL'
419+ ALTER TABLE version DROP homepage
420+ SQL);
421+ $ this ->addSql (<<<'SQL'
422+ ALTER TABLE version DROP license
423+ SQL);
424+ $ this ->addSql (<<<'SQL'
425+ ALTER TABLE version DROP type
426+ SQL);
427+ $ this ->addSql (<<<'SQL'
428+ ALTER TABLE version DROP target_dir
429+ SQL);
430+ $ this ->addSql (<<<'SQL'
431+ ALTER TABLE version DROP source
432+ SQL);
433+ $ this ->addSql (<<<'SQL'
434+ ALTER TABLE version DROP dist
435+ SQL);
436+ $ this ->addSql (<<<'SQL'
437+ ALTER TABLE version DROP autoload
438+ SQL);
439+ $ this ->addSql (<<<'SQL'
440+ ALTER TABLE version DROP binaries
441+ SQL);
442+ $ this ->addSql (<<<'SQL'
443+ ALTER TABLE version DROP include_paths
444+ SQL);
445+ $ this ->addSql (<<<'SQL'
446+ ALTER TABLE version DROP php_ext
447+ SQL);
448+ $ this ->addSql (<<<'SQL'
449+ ALTER TABLE version DROP authors
450+ SQL);
451+ $ this ->addSql (<<<'SQL'
452+ ALTER TABLE version DROP support
453+ SQL);
454+ $ this ->addSql (<<<'SQL'
455+ ALTER TABLE version DROP funding
456+ SQL);
457+ $ this ->addSql (<<<'SQL'
458+ ALTER TABLE version DROP extra
459+ SQL);
460+ $ this ->addSql (<<<'SQL'
461+ ALTER TABLE version DROP released_at
462+ SQL);
463+ }
464+
465+ private function createVersionTableFields (): void
466+ {
467+ $ this ->addSql (<<<'SQL'
468+ ALTER TABLE version ADD package_name VARCHAR(255) NOT NULL
469+ SQL);
470+ $ this ->addSql (<<<'SQL'
471+ ALTER TABLE version ADD description TEXT DEFAULT NULL
472+ SQL);
473+ $ this ->addSql (<<<'SQL'
474+ ALTER TABLE version ADD readme TEXT DEFAULT NULL
475+ SQL);
476+ $ this ->addSql (<<<'SQL'
477+ ALTER TABLE version ADD homepage VARCHAR(255) DEFAULT NULL
478+ SQL);
479+ $ this ->addSql (<<<'SQL'
480+ ALTER TABLE version ADD license JSON NOT NULL
481+ SQL);
482+ $ this ->addSql (<<<'SQL'
483+ ALTER TABLE version ADD type VARCHAR(255) DEFAULT NULL
484+ SQL);
485+ $ this ->addSql (<<<'SQL'
486+ ALTER TABLE version ADD target_dir VARCHAR(255) DEFAULT NULL
487+ SQL);
488+ $ this ->addSql (<<<'SQL'
489+ ALTER TABLE version ADD source JSON DEFAULT NULL
490+ SQL);
491+ $ this ->addSql (<<<'SQL'
492+ ALTER TABLE version ADD dist JSON DEFAULT NULL
493+ SQL);
494+ $ this ->addSql (<<<'SQL'
495+ ALTER TABLE version ADD autoload JSON NOT NULL
496+ SQL);
497+ $ this ->addSql (<<<'SQL'
498+ ALTER TABLE version ADD binaries JSON DEFAULT NULL
499+ SQL);
500+ $ this ->addSql (<<<'SQL'
501+ ALTER TABLE version ADD include_paths JSON DEFAULT NULL
502+ SQL);
503+ $ this ->addSql (<<<'SQL'
504+ ALTER TABLE version ADD php_ext JSON DEFAULT NULL
505+ SQL);
506+ $ this ->addSql (<<<'SQL'
507+ ALTER TABLE version ADD authors JSON DEFAULT NULL
508+ SQL);
509+ $ this ->addSql (<<<'SQL'
510+ ALTER TABLE version ADD support JSON DEFAULT NULL
511+ SQL);
512+ $ this ->addSql (<<<'SQL'
513+ ALTER TABLE version ADD funding JSON DEFAULT NULL
514+ SQL);
515+ $ this ->addSql (<<<'SQL'
516+ ALTER TABLE version ADD extra JSON DEFAULT NULL
517+ SQL);
518+ $ this ->addSql (<<<'SQL'
519+ ALTER TABLE version ADD released_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
520+ SQL);
521+ }
522+
523+ private function createVersionLinkTables (): void
524+ {
525+ $ this ->addSql (<<<'SQL'
526+ CREATE TABLE version_conflict_link (
527+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
528+ linked_package_name VARCHAR(191) NOT NULL,
529+ linked_version_constraint TEXT NOT NULL,
530+ version_id INT NOT NULL,
531+ PRIMARY KEY (id)
532+ )
533+ SQL);
534+ $ this ->addSql (<<<'SQL'
535+ CREATE INDEX idx_ad52d6c4bbc2705 ON version_conflict_link (version_id)
536+ SQL);
537+ $ this ->addSql (<<<'SQL'
538+ CREATE TABLE version_dev_require_link (
539+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
540+ linked_package_name VARCHAR(191) NOT NULL,
541+ linked_version_constraint TEXT NOT NULL,
542+ version_id INT NOT NULL,
543+ PRIMARY KEY (id)
544+ )
545+ SQL);
546+ $ this ->addSql (<<<'SQL'
547+ CREATE INDEX idx_98f2e46e4bbc2705 ON version_dev_require_link (version_id)
548+ SQL);
549+ $ this ->addSql (<<<'SQL'
550+ CREATE TABLE version_keyword (
551+ version_id INT NOT NULL,
552+ keyword_id INT NOT NULL,
553+ PRIMARY KEY (version_id, keyword_id)
554+ )
555+ SQL);
556+ $ this ->addSql (<<<'SQL'
557+ CREATE INDEX idx_a65a946f115d4552 ON version_keyword (keyword_id)
558+ SQL);
559+ $ this ->addSql (<<<'SQL'
560+ CREATE INDEX idx_a65a946f4bbc2705 ON version_keyword (version_id)
561+ SQL);
562+ $ this ->addSql (<<<'SQL'
563+ CREATE TABLE version_provide_link (
564+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
565+ linked_package_name VARCHAR(191) NOT NULL,
566+ linked_version_constraint TEXT NOT NULL,
567+ version_id INT NOT NULL,
568+ PRIMARY KEY (id)
569+ )
570+ SQL);
571+ $ this ->addSql (<<<'SQL'
572+ CREATE INDEX idx_150ec10c4bbc2705 ON version_provide_link (version_id)
573+ SQL);
574+ $ this ->addSql (<<<'SQL'
575+ CREATE TABLE version_replace_link (
576+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
577+ linked_package_name VARCHAR(191) NOT NULL,
578+ linked_version_constraint TEXT NOT NULL,
579+ version_id INT NOT NULL,
580+ PRIMARY KEY (id)
581+ )
582+ SQL);
583+ $ this ->addSql (<<<'SQL'
584+ CREATE INDEX idx_87f1b96a4bbc2705 ON version_replace_link (version_id)
585+ SQL);
586+ $ this ->addSql (<<<'SQL'
587+ CREATE TABLE version_require_link (
588+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
589+ linked_package_name VARCHAR(191) NOT NULL,
590+ linked_version_constraint TEXT NOT NULL,
591+ version_id INT NOT NULL,
592+ PRIMARY KEY (id)
593+ )
594+ SQL);
595+ $ this ->addSql (<<<'SQL'
596+ CREATE INDEX idx_7a1caab14bbc2705 ON version_require_link (version_id)
597+ SQL);
598+ $ this ->addSql (<<<'SQL'
599+ CREATE TABLE version_suggest_link (
600+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
601+ linked_package_name VARCHAR(191) NOT NULL,
602+ linked_version_constraint TEXT NOT NULL,
603+ version_id INT NOT NULL,
604+ PRIMARY KEY (id)
605+ )
606+ SQL);
607+ $ this ->addSql (<<<'SQL'
608+ CREATE INDEX idx_de9b76884bbc2705 ON version_suggest_link (version_id)
609+ SQL);
610+ $ this ->addSql (<<<'SQL'
611+ ALTER TABLE
612+ version_conflict_link
613+ ADD
614+ CONSTRAINT fk_ad52d6c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
615+ SQL);
616+ $ this ->addSql (<<<'SQL'
617+ ALTER TABLE
618+ version_dev_require_link
619+ ADD
620+ CONSTRAINT fk_98f2e46e4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
621+ SQL);
622+ $ this ->addSql (<<<'SQL'
623+ ALTER TABLE
624+ version_keyword
625+ ADD
626+ CONSTRAINT fk_a65a946f4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
627+ SQL);
628+ $ this ->addSql (<<<'SQL'
629+ ALTER TABLE
630+ version_keyword
631+ ADD
632+ CONSTRAINT fk_a65a946f115d4552 FOREIGN KEY (keyword_id) REFERENCES keyword (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
633+ SQL);
634+ $ this ->addSql (<<<'SQL'
635+ ALTER TABLE
636+ version_provide_link
637+ ADD
638+ CONSTRAINT fk_150ec10c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
639+ SQL);
640+ $ this ->addSql (<<<'SQL'
641+ ALTER TABLE
642+ version_replace_link
643+ ADD
644+ CONSTRAINT fk_87f1b96a4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
645+ SQL);
646+ $ this ->addSql (<<<'SQL'
647+ ALTER TABLE
648+ version_require_link
649+ ADD
650+ CONSTRAINT fk_7a1caab14bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
651+ SQL);
652+ $ this ->addSql (<<<'SQL'
653+ ALTER TABLE
654+ version_suggest_link
655+ ADD
656+ CONSTRAINT fk_de9b76884bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
657+ SQL);
658+ }
659+
354660 private function revertVersionTableColumns (): void
355661 {
356662 $ this ->addSql (<<<'SQL'
0 commit comments