@@ -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 ->dropMetadataTables ();
@@ -340,6 +344,308 @@ 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+
454+ public function createVersionTableFields (): void
455+ {
456+ $ this ->addSql (<<<'SQL'
457+ ALTER TABLE version ADD package_name VARCHAR(255) NOT NULL
458+ SQL);
459+ $ this ->addSql (<<<'SQL'
460+ ALTER TABLE version ADD description TEXT DEFAULT NULL
461+ SQL);
462+ $ this ->addSql (<<<'SQL'
463+ ALTER TABLE version ADD readme TEXT DEFAULT NULL
464+ SQL);
465+ $ this ->addSql (<<<'SQL'
466+ ALTER TABLE version ADD homepage VARCHAR(255) DEFAULT NULL
467+ SQL);
468+ $ this ->addSql (<<<'SQL'
469+ ALTER TABLE version ADD license JSON NOT NULL
470+ SQL);
471+ $ this ->addSql (<<<'SQL'
472+ ALTER TABLE version ADD type VARCHAR(255) DEFAULT NULL
473+ SQL);
474+ $ this ->addSql (<<<'SQL'
475+ ALTER TABLE version ADD target_dir VARCHAR(255) DEFAULT NULL
476+ SQL);
477+ $ this ->addSql (<<<'SQL'
478+ ALTER TABLE version ADD source JSON DEFAULT NULL
479+ SQL);
480+ $ this ->addSql (<<<'SQL'
481+ ALTER TABLE version ADD dist JSON DEFAULT NULL
482+ SQL);
483+ $ this ->addSql (<<<'SQL'
484+ ALTER TABLE version ADD autoload JSON NOT NULL
485+ SQL);
486+ $ this ->addSql (<<<'SQL'
487+ ALTER TABLE version ADD binaries JSON DEFAULT NULL
488+ SQL);
489+ $ this ->addSql (<<<'SQL'
490+ ALTER TABLE version ADD include_paths JSON DEFAULT NULL
491+ SQL);
492+ $ this ->addSql (<<<'SQL'
493+ ALTER TABLE version ADD php_ext JSON DEFAULT NULL
494+ SQL);
495+ $ this ->addSql (<<<'SQL'
496+ ALTER TABLE version ADD authors JSON DEFAULT NULL
497+ SQL);
498+ $ this ->addSql (<<<'SQL'
499+ ALTER TABLE version ADD support JSON DEFAULT NULL
500+ SQL);
501+ $ this ->addSql (<<<'SQL'
502+ ALTER TABLE version ADD funding JSON DEFAULT NULL
503+ SQL);
504+ $ this ->addSql (<<<'SQL'
505+ ALTER TABLE version ADD extra JSON DEFAULT NULL
506+ SQL);
507+ $ this ->addSql (<<<'SQL'
508+ ALTER TABLE version ADD released_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
509+ SQL);
510+ }
511+
512+ public function createVersionLinkTables (): void
513+ {
514+ $ this ->addSql (<<<'SQL'
515+ CREATE TABLE version_conflict_link (
516+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
517+ linked_package_name VARCHAR(191) NOT NULL,
518+ linked_version_constraint TEXT NOT NULL,
519+ version_id INT NOT NULL,
520+ PRIMARY KEY (id)
521+ )
522+ SQL);
523+ $ this ->addSql (<<<'SQL'
524+ CREATE INDEX idx_ad52d6c4bbc2705 ON version_conflict_link (version_id)
525+ SQL);
526+ $ this ->addSql (<<<'SQL'
527+ CREATE TABLE version_dev_require_link (
528+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
529+ linked_package_name VARCHAR(191) NOT NULL,
530+ linked_version_constraint TEXT NOT NULL,
531+ version_id INT NOT NULL,
532+ PRIMARY KEY (id)
533+ )
534+ SQL);
535+ $ this ->addSql (<<<'SQL'
536+ CREATE INDEX idx_98f2e46e4bbc2705 ON version_dev_require_link (version_id)
537+ SQL);
538+ $ this ->addSql (<<<'SQL'
539+ CREATE TABLE version_keyword (
540+ version_id INT NOT NULL,
541+ keyword_id INT NOT NULL,
542+ PRIMARY KEY (version_id, keyword_id)
543+ )
544+ SQL);
545+ $ this ->addSql (<<<'SQL'
546+ CREATE INDEX idx_a65a946f115d4552 ON version_keyword (keyword_id)
547+ SQL);
548+ $ this ->addSql (<<<'SQL'
549+ CREATE INDEX idx_a65a946f4bbc2705 ON version_keyword (version_id)
550+ SQL);
551+ $ this ->addSql (<<<'SQL'
552+ CREATE TABLE version_provide_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_150ec10c4bbc2705 ON version_provide_link (version_id)
562+ SQL);
563+ $ this ->addSql (<<<'SQL'
564+ CREATE TABLE version_replace_link (
565+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
566+ linked_package_name VARCHAR(191) NOT NULL,
567+ linked_version_constraint TEXT NOT NULL,
568+ version_id INT NOT NULL,
569+ PRIMARY KEY (id)
570+ )
571+ SQL);
572+ $ this ->addSql (<<<'SQL'
573+ CREATE INDEX idx_87f1b96a4bbc2705 ON version_replace_link (version_id)
574+ SQL);
575+ $ this ->addSql (<<<'SQL'
576+ CREATE TABLE version_require_link (
577+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
578+ linked_package_name VARCHAR(191) NOT NULL,
579+ linked_version_constraint TEXT NOT NULL,
580+ version_id INT NOT NULL,
581+ PRIMARY KEY (id)
582+ )
583+ SQL);
584+ $ this ->addSql (<<<'SQL'
585+ CREATE INDEX idx_7a1caab14bbc2705 ON version_require_link (version_id)
586+ SQL);
587+ $ this ->addSql (<<<'SQL'
588+ CREATE TABLE version_suggest_link (
589+ id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
590+ linked_package_name VARCHAR(191) NOT NULL,
591+ linked_version_constraint TEXT NOT NULL,
592+ version_id INT NOT NULL,
593+ PRIMARY KEY (id)
594+ )
595+ SQL);
596+ $ this ->addSql (<<<'SQL'
597+ CREATE INDEX idx_de9b76884bbc2705 ON version_suggest_link (version_id)
598+ SQL);
599+ $ this ->addSql (<<<'SQL'
600+ ALTER TABLE
601+ version_conflict_link
602+ ADD
603+ CONSTRAINT fk_ad52d6c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
604+ SQL);
605+ $ this ->addSql (<<<'SQL'
606+ ALTER TABLE
607+ version_dev_require_link
608+ ADD
609+ CONSTRAINT fk_98f2e46e4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
610+ SQL);
611+ $ this ->addSql (<<<'SQL'
612+ ALTER TABLE
613+ version_keyword
614+ ADD
615+ CONSTRAINT fk_a65a946f4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
616+ SQL);
617+ $ this ->addSql (<<<'SQL'
618+ ALTER TABLE
619+ version_keyword
620+ ADD
621+ CONSTRAINT fk_a65a946f115d4552 FOREIGN KEY (keyword_id) REFERENCES keyword (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
622+ SQL);
623+ $ this ->addSql (<<<'SQL'
624+ ALTER TABLE
625+ version_provide_link
626+ ADD
627+ CONSTRAINT fk_150ec10c4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
628+ SQL);
629+ $ this ->addSql (<<<'SQL'
630+ ALTER TABLE
631+ version_replace_link
632+ ADD
633+ CONSTRAINT fk_87f1b96a4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
634+ SQL);
635+ $ this ->addSql (<<<'SQL'
636+ ALTER TABLE
637+ version_require_link
638+ ADD
639+ CONSTRAINT fk_7a1caab14bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
640+ SQL);
641+ $ this ->addSql (<<<'SQL'
642+ ALTER TABLE
643+ version_suggest_link
644+ ADD
645+ CONSTRAINT fk_de9b76884bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
646+ SQL);
647+ }
648+
343649 public function revertVersionTableColumns (): void
344650 {
345651 $ this ->addSql (<<<'SQL'
0 commit comments