Skip to content

Commit b408e1d

Browse files
committed
Remove obsolete metadata fields from version tables
Signed-off-by: Tim Goudriaan <tim@codedmonkey.com>
1 parent 21ef647 commit b408e1d

11 files changed

+329
-832
lines changed

migrations/Version20260325114538.php

Lines changed: 320 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)