Skip to content

Commit 77ea037

Browse files
committed
Merge branch 'package-links'
2 parents 93b4d4e + 1ce7c26 commit 77ea037

29 files changed

+1024
-310
lines changed
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250606212853 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Recreate version link tables';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql(<<<'SQL'
20+
CREATE TABLE version_conflict_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, linked_package_name VARCHAR(191) NOT NULL, linked_version_constraint TEXT NOT NULL, version_id INT NOT NULL, PRIMARY KEY(id))
21+
SQL);
22+
$this->addSql(<<<'SQL'
23+
CREATE INDEX IDX_AD52D6C4BBC2705 ON version_conflict_link (version_id)
24+
SQL);
25+
$this->addSql(<<<'SQL'
26+
CREATE TABLE version_dev_require_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, linked_package_name VARCHAR(191) NOT NULL, linked_version_constraint TEXT NOT NULL, version_id INT NOT NULL, PRIMARY KEY(id))
27+
SQL);
28+
$this->addSql(<<<'SQL'
29+
CREATE INDEX IDX_98F2E46E4BBC2705 ON version_dev_require_link (version_id)
30+
SQL);
31+
$this->addSql(<<<'SQL'
32+
CREATE TABLE version_provide_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, linked_package_name VARCHAR(191) NOT NULL, linked_version_constraint TEXT NOT NULL, version_id INT NOT NULL, PRIMARY KEY(id))
33+
SQL);
34+
$this->addSql(<<<'SQL'
35+
CREATE INDEX IDX_150EC10C4BBC2705 ON version_provide_link (version_id)
36+
SQL);
37+
$this->addSql(<<<'SQL'
38+
CREATE TABLE version_replace_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, linked_package_name VARCHAR(191) NOT NULL, linked_version_constraint TEXT NOT NULL, version_id INT NOT NULL, PRIMARY KEY(id))
39+
SQL);
40+
$this->addSql(<<<'SQL'
41+
CREATE INDEX IDX_87F1B96A4BBC2705 ON version_replace_link (version_id)
42+
SQL);
43+
$this->addSql(<<<'SQL'
44+
CREATE TABLE version_require_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, linked_package_name VARCHAR(191) NOT NULL, linked_version_constraint TEXT NOT NULL, version_id INT NOT NULL, PRIMARY KEY(id))
45+
SQL);
46+
$this->addSql(<<<'SQL'
47+
CREATE INDEX IDX_7A1CAAB14BBC2705 ON version_require_link (version_id)
48+
SQL);
49+
$this->addSql(<<<'SQL'
50+
CREATE TABLE version_suggest_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, linked_package_name VARCHAR(191) NOT NULL, linked_version_constraint TEXT NOT NULL, version_id INT NOT NULL, PRIMARY KEY(id))
51+
SQL);
52+
$this->addSql(<<<'SQL'
53+
CREATE INDEX IDX_DE9B76884BBC2705 ON version_suggest_link (version_id)
54+
SQL);
55+
$this->addSql(<<<'SQL'
56+
ALTER TABLE version_conflict_link ADD CONSTRAINT FK_AD52D6C4BBC2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
57+
SQL);
58+
$this->addSql(<<<'SQL'
59+
ALTER TABLE version_dev_require_link ADD CONSTRAINT FK_98F2E46E4BBC2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
60+
SQL);
61+
$this->addSql(<<<'SQL'
62+
ALTER TABLE version_provide_link ADD CONSTRAINT FK_150EC10C4BBC2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
63+
SQL);
64+
$this->addSql(<<<'SQL'
65+
ALTER TABLE version_replace_link ADD CONSTRAINT FK_87F1B96A4BBC2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
66+
SQL);
67+
$this->addSql(<<<'SQL'
68+
ALTER TABLE version_require_link ADD CONSTRAINT FK_7A1CAAB14BBC2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
69+
SQL);
70+
$this->addSql(<<<'SQL'
71+
ALTER TABLE version_suggest_link ADD CONSTRAINT FK_DE9B76884BBC2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
72+
SQL);
73+
$this->addSql(<<<'SQL'
74+
ALTER TABLE dev_require_link DROP CONSTRAINT fk_47a9dc2b4bbc2705
75+
SQL);
76+
$this->addSql(<<<'SQL'
77+
ALTER TABLE conflict_link DROP CONSTRAINT fk_ca65041a4bbc2705
78+
SQL);
79+
$this->addSql(<<<'SQL'
80+
ALTER TABLE suggest_link DROP CONSTRAINT fk_d4deadf74bbc2705
81+
SQL);
82+
$this->addSql(<<<'SQL'
83+
ALTER TABLE require_link DROP CONSTRAINT fk_705971ce4bbc2705
84+
SQL);
85+
$this->addSql(<<<'SQL'
86+
ALTER TABLE replace_link DROP CONSTRAINT fk_8db462154bbc2705
87+
SQL);
88+
$this->addSql(<<<'SQL'
89+
ALTER TABLE provide_link DROP CONSTRAINT fk_1f4b1a734bbc2705
90+
SQL);
91+
$this->addSql(<<<'SQL'
92+
DROP TABLE dev_require_link
93+
SQL);
94+
$this->addSql(<<<'SQL'
95+
DROP TABLE conflict_link
96+
SQL);
97+
$this->addSql(<<<'SQL'
98+
DROP TABLE suggest_link
99+
SQL);
100+
$this->addSql(<<<'SQL'
101+
DROP TABLE require_link
102+
SQL);
103+
$this->addSql(<<<'SQL'
104+
DROP TABLE replace_link
105+
SQL);
106+
$this->addSql(<<<'SQL'
107+
DROP TABLE provide_link
108+
SQL);
109+
}
110+
111+
public function down(Schema $schema): void
112+
{
113+
$this->addSql(<<<'SQL'
114+
CREATE TABLE dev_require_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version_id INT NOT NULL, package_name VARCHAR(191) NOT NULL, package_version TEXT NOT NULL, PRIMARY KEY(id))
115+
SQL);
116+
$this->addSql(<<<'SQL'
117+
CREATE INDEX idx_47a9dc2b4bbc2705 ON dev_require_link (version_id)
118+
SQL);
119+
$this->addSql(<<<'SQL'
120+
CREATE TABLE conflict_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version_id INT NOT NULL, package_name VARCHAR(191) NOT NULL, package_version TEXT NOT NULL, PRIMARY KEY(id))
121+
SQL);
122+
$this->addSql(<<<'SQL'
123+
CREATE INDEX idx_ca65041a4bbc2705 ON conflict_link (version_id)
124+
SQL);
125+
$this->addSql(<<<'SQL'
126+
CREATE TABLE suggest_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version_id INT NOT NULL, package_name VARCHAR(191) NOT NULL, package_version TEXT NOT NULL, PRIMARY KEY(id))
127+
SQL);
128+
$this->addSql(<<<'SQL'
129+
CREATE INDEX idx_d4deadf74bbc2705 ON suggest_link (version_id)
130+
SQL);
131+
$this->addSql(<<<'SQL'
132+
CREATE TABLE require_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version_id INT NOT NULL, package_name VARCHAR(191) NOT NULL, package_version TEXT NOT NULL, PRIMARY KEY(id))
133+
SQL);
134+
$this->addSql(<<<'SQL'
135+
CREATE INDEX idx_705971ce4bbc2705 ON require_link (version_id)
136+
SQL);
137+
$this->addSql(<<<'SQL'
138+
CREATE TABLE replace_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version_id INT NOT NULL, package_name VARCHAR(191) NOT NULL, package_version TEXT NOT NULL, PRIMARY KEY(id))
139+
SQL);
140+
$this->addSql(<<<'SQL'
141+
CREATE INDEX idx_8db462154bbc2705 ON replace_link (version_id)
142+
SQL);
143+
$this->addSql(<<<'SQL'
144+
CREATE TABLE provide_link (id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version_id INT NOT NULL, package_name VARCHAR(191) NOT NULL, package_version TEXT NOT NULL, PRIMARY KEY(id))
145+
SQL);
146+
$this->addSql(<<<'SQL'
147+
CREATE INDEX idx_1f4b1a734bbc2705 ON provide_link (version_id)
148+
SQL);
149+
$this->addSql(<<<'SQL'
150+
ALTER TABLE dev_require_link ADD CONSTRAINT fk_47a9dc2b4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
151+
SQL);
152+
$this->addSql(<<<'SQL'
153+
ALTER TABLE conflict_link ADD CONSTRAINT fk_ca65041a4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
154+
SQL);
155+
$this->addSql(<<<'SQL'
156+
ALTER TABLE suggest_link ADD CONSTRAINT fk_d4deadf74bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
157+
SQL);
158+
$this->addSql(<<<'SQL'
159+
ALTER TABLE require_link ADD CONSTRAINT fk_705971ce4bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
160+
SQL);
161+
$this->addSql(<<<'SQL'
162+
ALTER TABLE replace_link ADD CONSTRAINT fk_8db462154bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
163+
SQL);
164+
$this->addSql(<<<'SQL'
165+
ALTER TABLE provide_link ADD CONSTRAINT fk_1f4b1a734bbc2705 FOREIGN KEY (version_id) REFERENCES version (id) NOT DEFERRABLE INITIALLY IMMEDIATE
166+
SQL);
167+
$this->addSql(<<<'SQL'
168+
ALTER TABLE version_conflict_link DROP CONSTRAINT FK_AD52D6C4BBC2705
169+
SQL);
170+
$this->addSql(<<<'SQL'
171+
ALTER TABLE version_dev_require_link DROP CONSTRAINT FK_98F2E46E4BBC2705
172+
SQL);
173+
$this->addSql(<<<'SQL'
174+
ALTER TABLE version_provide_link DROP CONSTRAINT FK_150EC10C4BBC2705
175+
SQL);
176+
$this->addSql(<<<'SQL'
177+
ALTER TABLE version_replace_link DROP CONSTRAINT FK_87F1B96A4BBC2705
178+
SQL);
179+
$this->addSql(<<<'SQL'
180+
ALTER TABLE version_require_link DROP CONSTRAINT FK_7A1CAAB14BBC2705
181+
SQL);
182+
$this->addSql(<<<'SQL'
183+
ALTER TABLE version_suggest_link DROP CONSTRAINT FK_DE9B76884BBC2705
184+
SQL);
185+
$this->addSql(<<<'SQL'
186+
DROP TABLE version_conflict_link
187+
SQL);
188+
$this->addSql(<<<'SQL'
189+
DROP TABLE version_dev_require_link
190+
SQL);
191+
$this->addSql(<<<'SQL'
192+
DROP TABLE version_provide_link
193+
SQL);
194+
$this->addSql(<<<'SQL'
195+
DROP TABLE version_replace_link
196+
SQL);
197+
$this->addSql(<<<'SQL'
198+
DROP TABLE version_require_link
199+
SQL);
200+
$this->addSql(<<<'SQL'
201+
DROP TABLE version_suggest_link
202+
SQL);
203+
}
204+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250606221557 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add generalized package link tables';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql(<<<'SQL'
20+
CREATE TABLE package_provide_link (linked_package_name VARCHAR(191) NOT NULL, implementation BOOLEAN NOT NULL, package_id INT NOT NULL, PRIMARY KEY(linked_package_name, package_id, implementation))
21+
SQL);
22+
$this->addSql(<<<'SQL'
23+
CREATE INDEX IDX_BB570504F44CABFF ON package_provide_link (package_id)
24+
SQL);
25+
$this->addSql(<<<'SQL'
26+
CREATE TABLE package_require_link (linked_package_name VARCHAR(191) NOT NULL, dev_dependency BOOLEAN NOT NULL, package_id INT NOT NULL, PRIMARY KEY(linked_package_name, package_id, dev_dependency))
27+
SQL);
28+
$this->addSql(<<<'SQL'
29+
CREATE INDEX IDX_D4456EB9F44CABFF ON package_require_link (package_id)
30+
SQL);
31+
$this->addSql(<<<'SQL'
32+
CREATE TABLE package_suggest_link (linked_package_name VARCHAR(191) NOT NULL, package_id INT NOT NULL, PRIMARY KEY(linked_package_name, package_id))
33+
SQL);
34+
$this->addSql(<<<'SQL'
35+
CREATE INDEX IDX_70C2B280F44CABFF ON package_suggest_link (package_id)
36+
SQL);
37+
$this->addSql(<<<'SQL'
38+
ALTER TABLE package_provide_link ADD CONSTRAINT FK_BB570504F44CABFF FOREIGN KEY (package_id) REFERENCES package (id) NOT DEFERRABLE INITIALLY IMMEDIATE
39+
SQL);
40+
$this->addSql(<<<'SQL'
41+
ALTER TABLE package_require_link ADD CONSTRAINT FK_D4456EB9F44CABFF FOREIGN KEY (package_id) REFERENCES package (id) NOT DEFERRABLE INITIALLY IMMEDIATE
42+
SQL);
43+
$this->addSql(<<<'SQL'
44+
ALTER TABLE package_suggest_link ADD CONSTRAINT FK_70C2B280F44CABFF FOREIGN KEY (package_id) REFERENCES package (id) NOT DEFERRABLE INITIALLY IMMEDIATE
45+
SQL);
46+
}
47+
48+
public function down(Schema $schema): void
49+
{
50+
$this->addSql(<<<'SQL'
51+
ALTER TABLE package_provide_link DROP CONSTRAINT FK_BB570504F44CABFF
52+
SQL);
53+
$this->addSql(<<<'SQL'
54+
ALTER TABLE package_require_link DROP CONSTRAINT FK_D4456EB9F44CABFF
55+
SQL);
56+
$this->addSql(<<<'SQL'
57+
ALTER TABLE package_suggest_link DROP CONSTRAINT FK_70C2B280F44CABFF
58+
SQL);
59+
$this->addSql(<<<'SQL'
60+
DROP TABLE package_provide_link
61+
SQL);
62+
$this->addSql(<<<'SQL'
63+
DROP TABLE package_require_link
64+
SQL);
65+
$this->addSql(<<<'SQL'
66+
DROP TABLE package_suggest_link
67+
SQL);
68+
}
69+
}

phpstan.dist.neon

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ parameters:
1010
excludePaths:
1111
- tests/bootstrap.php
1212
ignoreErrors:
13+
- '#CodedMonkey\\Dirigent\\Doctrine\\Entity\\AbstractVersionLink given\.#'
14+
- '#^PHPDoc tag @var with type CodedMonkey\\Dirigent\\Doctrine\\Entity\\AbstractVersionLink is not subtype of native type#'
1315
- '#^Property CodedMonkey\\Dirigent\\Doctrine\\Entity\\[a-zA-Z]+\:\:\$id \(int\|null\) is never assigned int so it can be removed from the property type\.$#'
1416
-
1517
message: '#^Call to an undefined method Symfony\\Component\\Config\\Definition\\Builder\\NodeDefinition\:\:children\(\)\.$#'

0 commit comments

Comments
 (0)