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