@@ -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,322 @@ 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) DEFAULT 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 DEFAULT 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 DEFAULT 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+ $ this ->addSql (<<<'SQL'
523+ UPDATE version SET package_name = 'place/holder', license = '[]', autoload = '[]'
524+ SQL);
525+
526+ $ this ->addSql (<<<'SQL'
527+ ALTER TABLE version CHANGE package_name package_name VARCHAR(255) NOT NULL
528+ SQL);
529+ $ this ->addSql (<<<'SQL'
530+ ALTER TABLE version CHANGE license license JSON NOT NULL
531+ SQL);
532+ $ this ->addSql (<<<'SQL'
533+ ALTER TABLE version CHANGE autoload autoload JSON NOT NULL
534+ SQL);
535+ }
536+
537+ private function createVersionLinkTables (): void
538+ {
539+ $ this ->addSql (<<<'SQL'
540+ CREATE TABLE version_conflict_link (
541+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
542+ linked_package_name VARCHAR(191) NOT NULL,
543+ linked_version_constraint TEXT NOT NULL,
544+ version_id INT NOT NULL,
545+ PRIMARY KEY (id)
546+ )
547+ SQL);
548+ $ this ->addSql (<<<'SQL'
549+ CREATE INDEX idx_ad52d6c4bbc2705 ON version_conflict_link (version_id)
550+ SQL);
551+ $ this ->addSql (<<<'SQL'
552+ CREATE TABLE version_dev_require_link (
553+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
554+ linked_package_name VARCHAR(191) NOT NULL,
555+ linked_version_constraint TEXT NOT NULL,
556+ version_id INT NOT NULL,
557+ PRIMARY KEY (id)
558+ )
559+ SQL);
560+ $ this ->addSql (<<<'SQL'
561+ CREATE INDEX idx_98f2e46e4bbc2705 ON version_dev_require_link (version_id)
562+ SQL);
563+ $ this ->addSql (<<<'SQL'
564+ CREATE TABLE version_keyword (
565+ version_id INT NOT NULL,
566+ keyword_id INT NOT NULL,
567+ PRIMARY KEY (version_id, keyword_id)
568+ )
569+ SQL);
570+ $ this ->addSql (<<<'SQL'
571+ CREATE INDEX idx_a65a946f115d4552 ON version_keyword (keyword_id)
572+ SQL);
573+ $ this ->addSql (<<<'SQL'
574+ CREATE INDEX idx_a65a946f4bbc2705 ON version_keyword (version_id)
575+ SQL);
576+ $ this ->addSql (<<<'SQL'
577+ CREATE TABLE version_provide_link (
578+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
579+ linked_package_name VARCHAR(191) NOT NULL,
580+ linked_version_constraint TEXT NOT NULL,
581+ version_id INT NOT NULL,
582+ PRIMARY KEY (id)
583+ )
584+ SQL);
585+ $ this ->addSql (<<<'SQL'
586+ CREATE INDEX idx_150ec10c4bbc2705 ON version_provide_link (version_id)
587+ SQL);
588+ $ this ->addSql (<<<'SQL'
589+ CREATE TABLE version_replace_link (
590+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
591+ linked_package_name VARCHAR(191) NOT NULL,
592+ linked_version_constraint TEXT NOT NULL,
593+ version_id INT NOT NULL,
594+ PRIMARY KEY (id)
595+ )
596+ SQL);
597+ $ this ->addSql (<<<'SQL'
598+ CREATE INDEX idx_87f1b96a4bbc2705 ON version_replace_link (version_id)
599+ SQL);
600+ $ this ->addSql (<<<'SQL'
601+ CREATE TABLE version_require_link (
602+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
603+ linked_package_name VARCHAR(191) NOT NULL,
604+ linked_version_constraint TEXT NOT NULL,
605+ version_id INT NOT NULL,
606+ PRIMARY KEY (id)
607+ )
608+ SQL);
609+ $ this ->addSql (<<<'SQL'
610+ CREATE INDEX idx_7a1caab14bbc2705 ON version_require_link (version_id)
611+ SQL);
612+ $ this ->addSql (<<<'SQL'
613+ CREATE TABLE version_suggest_link (
614+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
615+ linked_package_name VARCHAR(191) NOT NULL,
616+ linked_version_constraint TEXT NOT NULL,
617+ version_id INT NOT NULL,
618+ PRIMARY KEY (id)
619+ )
620+ SQL);
621+ $ this ->addSql (<<<'SQL'
622+ CREATE INDEX idx_de9b76884bbc2705 ON version_suggest_link (version_id)
623+ SQL);
624+ $ this ->addSql (<<<'SQL'
625+ ALTER TABLE
626+ version_conflict_link
627+ ADD
628+ CONSTRAINT fk_ad52d6c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
629+ SQL);
630+ $ this ->addSql (<<<'SQL'
631+ ALTER TABLE
632+ version_dev_require_link
633+ ADD
634+ CONSTRAINT fk_98f2e46e4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
635+ SQL);
636+ $ this ->addSql (<<<'SQL'
637+ ALTER TABLE
638+ version_keyword
639+ ADD
640+ CONSTRAINT fk_a65a946f4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
641+ SQL);
642+ $ this ->addSql (<<<'SQL'
643+ ALTER TABLE
644+ version_keyword
645+ ADD
646+ CONSTRAINT fk_a65a946f115d4552 FOREIGN KEY (keyword_id) REFERENCES keyword (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
647+ SQL);
648+ $ this ->addSql (<<<'SQL'
649+ ALTER TABLE
650+ version_provide_link
651+ ADD
652+ CONSTRAINT fk_150ec10c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
653+ SQL);
654+ $ this ->addSql (<<<'SQL'
655+ ALTER TABLE
656+ version_replace_link
657+ ADD
658+ CONSTRAINT fk_87f1b96a4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
659+ SQL);
660+ $ this ->addSql (<<<'SQL'
661+ ALTER TABLE
662+ version_require_link
663+ ADD
664+ CONSTRAINT fk_7a1caab14bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
665+ SQL);
666+ $ this ->addSql (<<<'SQL'
667+ ALTER TABLE
668+ version_suggest_link
669+ ADD
670+ CONSTRAINT fk_de9b76884bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
671+ SQL);
672+ }
673+
354674 private function revertVersionTableColumns (): void
355675 {
356676 $ this ->addSql (<<<'SQL'
0 commit comments