Skip to content

Commit 226432e

Browse files
committed
Refactor version link entities
1 parent f87266b commit 226432e

14 files changed

Lines changed: 333 additions & 148 deletions
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+
}

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\(\)\.$#'

src/Doctrine/Entity/AbstractPackageLink.php

Lines changed: 0 additions & 70 deletions
This file was deleted.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
3+
namespace CodedMonkey\Dirigent\Doctrine\Entity;
4+
5+
use Doctrine\DBAL\Types\Types;
6+
use Doctrine\ORM\Mapping as ORM;
7+
8+
#[ORM\MappedSuperclass]
9+
abstract class AbstractVersionLink
10+
{
11+
#[ORM\Id]
12+
#[ORM\Column]
13+
#[ORM\GeneratedValue]
14+
private ?int $id = null;
15+
16+
protected Version $version;
17+
18+
#[ORM\Column(length: 191)]
19+
private string $linkedPackageName;
20+
21+
#[ORM\Column(type: Types::TEXT)]
22+
private string $linkedVersionConstraint;
23+
24+
public function getId(): ?int
25+
{
26+
return $this->id;
27+
}
28+
29+
public function getVersion(): Version
30+
{
31+
return $this->version;
32+
}
33+
34+
public function setVersion(Version $version): void
35+
{
36+
$this->version = $version;
37+
}
38+
39+
public function getLinkedPackageName(): string
40+
{
41+
return $this->linkedPackageName;
42+
}
43+
44+
public function setLinkedPackageName(string $packageName): void
45+
{
46+
$this->linkedPackageName = $packageName;
47+
}
48+
49+
public function getLinkedVersionConstraint(): string
50+
{
51+
return $this->linkedVersionConstraint;
52+
}
53+
54+
public function setLinkedVersionConstraint(string $packageVersion): void
55+
{
56+
$this->linkedVersionConstraint = $packageVersion;
57+
}
58+
}

0 commit comments

Comments
 (0)