@@ -29,6 +29,7 @@ public function down(Schema $schema): void
2929 $ this ->createVersionTableFields ();
3030 $ this ->createVersionLinkTables ();
3131 $ this ->revertVersionTableColumns ();
32+ $ this ->fillVersionTables ();
3233 $ this ->dropCurrentMetadataColumnFromVersionTable ();
3334 $ this ->dropMetadataTables ();
3435 }
@@ -454,7 +455,7 @@ private function dropVersionTableFields(): void
454455 private function createVersionTableFields (): void
455456 {
456457 $ this ->addSql (<<<'SQL'
457- ALTER TABLE version ADD package_name VARCHAR(255) NOT NULL
458+ ALTER TABLE version ADD package_name VARCHAR(255) DEFAULT NULL
458459 SQL);
459460 $ this ->addSql (<<<'SQL'
460461 ALTER TABLE version ADD description TEXT DEFAULT NULL
@@ -466,7 +467,7 @@ private function createVersionTableFields(): void
466467 ALTER TABLE version ADD homepage VARCHAR(255) DEFAULT NULL
467468 SQL);
468469 $ this ->addSql (<<<'SQL'
469- ALTER TABLE version ADD license JSON NOT NULL
470+ ALTER TABLE version ADD license JSON DEFAULT NULL
470471 SQL);
471472 $ this ->addSql (<<<'SQL'
472473 ALTER TABLE version ADD type VARCHAR(255) DEFAULT NULL
@@ -481,7 +482,7 @@ private function createVersionTableFields(): void
481482 ALTER TABLE version ADD dist JSON DEFAULT NULL
482483 SQL);
483484 $ this ->addSql (<<<'SQL'
484- ALTER TABLE version ADD autoload JSON NOT NULL
485+ ALTER TABLE version ADD autoload JSON DEFAULT NULL
485486 SQL);
486487 $ this ->addSql (<<<'SQL'
487488 ALTER TABLE version ADD binaries JSON DEFAULT NULL
@@ -507,6 +508,26 @@ private function createVersionTableFields(): void
507508 $ this ->addSql (<<<'SQL'
508509 ALTER TABLE version ADD released_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
509510 SQL);
511+
512+ $ this ->addSql (<<<'SQL'
513+ UPDATE version
514+ SET
515+ package_name = metadata.package_name,
516+ license = metadata.license,
517+ autoload = metadata.autoload,
518+ FROM metadata
519+ WHERE version.current_metadata_id = metadata.id
520+ SQL);
521+
522+ $ this ->addSql (<<<'SQL'
523+ ALTER TABLE version ALTER COLUMN package_name SET NOT NULL
524+ SQL);
525+ $ this ->addSql (<<<'SQL'
526+ ALTER TABLE version ALTER COLUMN license SET NOT NULL
527+ SQL);
528+ $ this ->addSql (<<<'SQL'
529+ ALTER TABLE version ALTER COLUMN autoload SET NOT NULL
530+ SQL);
510531 }
511532
512533 private function createVersionLinkTables (): void
@@ -678,6 +699,48 @@ private function revertVersionTableColumns(): void
678699 SQL);
679700 }
680701
702+ private function fillVersionTables (): void
703+ {
704+ $ this ->addSql (<<<'SQL'
705+ UPDATE version
706+ SET
707+ description = metadata.description,
708+ readme = metadata.readme,
709+ homepage = metadata.homepage,
710+ type = metadata.type,
711+ target_dir = metadata.target_dir,
712+ source = metadata.source,
713+ dist = metadata.dist,
714+ binaries = metadata.binaries,
715+ include_paths = metadata.include_paths,
716+ php_ext = metadata.php_ext,
717+ authors = metadata.authors,
718+ support = metadata.support,
719+ funding = metadata.funding,
720+ extra = metadata.extra,
721+ released_at = metadata.released_at
722+ FROM metadata
723+ WHERE version.current_metadata_id = metadata.id
724+ SQL);
725+
726+ $ linkTables = ['require ' , 'dev_require ' , 'conflict ' , 'provide ' , 'replace ' , 'suggest ' ];
727+
728+ foreach ($ linkTables as $ linkTable ) {
729+ $ this ->addSql (<<<SQL
730+ INSERT INTO version_ {$ linkTable }_link (version_id, linked_package_name, linked_version_constraint)
731+ SELECT version.id, metadata_link.linked_package_name, metadata_link.linked_version_constraint
732+ FROM metadata_ {$ linkTable }_link metadata_link
733+ INNER JOIN metadata metadata ON metadata_link.metadata_id = metadata.id
734+ INNER JOIN version version ON version.current_metadata_id = metadata.id
735+ WHERE NOT EXISTS (
736+ SELECT 1 FROM version_ {$ linkTable }_link version_link
737+ WHERE version_link.version_id = metadata.version_id
738+ AND version_link.linked_package_name = metadata_link.linked_package_name
739+ )
740+ SQL );
741+ }
742+ }
743+
681744 private function dropCurrentMetadataColumnFromVersionTable (): void
682745 {
683746 $ this ->addSql (<<<'SQL'
0 commit comments