From 688e2f87a3c26fd92e67f1f62dd4b7b809845e27 Mon Sep 17 00:00:00 2001 From: Marcel Diegelmann Date: Tue, 17 Jun 2025 14:02:30 +0200 Subject: [PATCH] SQL-Formatierung in Migration verbessern --- migrations/Version20250304081039.php | 99 +++++++++++++++++++++++----- migrations/Version20250304154507.php | 24 +++++-- 2 files changed, 101 insertions(+), 22 deletions(-) diff --git a/migrations/Version20250304081039.php b/migrations/Version20250304081039.php index 755ae236..c0fc08d9 100644 --- a/migrations/Version20250304081039.php +++ b/migrations/Version20250304081039.php @@ -16,26 +16,93 @@ final class Version20250304081039 extends AbstractMultiPlatformMigration public function mySQLUp(Schema $schema): void { - $this->addSql('CREATE TABLE assemblies (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, id_preview_attachment INT DEFAULT NULL, name VARCHAR(255) NOT NULL, comment LONGTEXT NOT NULL, not_selectable TINYINT(1) NOT NULL, alternative_names LONGTEXT DEFAULT NULL, order_quantity INT NOT NULL, status VARCHAR(64) DEFAULT NULL, order_only_missing_parts TINYINT(1) NOT NULL, description LONGTEXT NOT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, INDEX IDX_5F3832C0727ACA70 (parent_id), INDEX IDX_5F3832C0EA7100A1 (id_preview_attachment), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci`'); - $this->addSql('CREATE TABLE assembly_bom_entries (id INT AUTO_INCREMENT NOT NULL, id_assembly INT DEFAULT NULL, id_part INT DEFAULT NULL, id_project INT DEFAULT NULL, quantity DOUBLE PRECISION NOT NULL, mountnames LONGTEXT NOT NULL, name VARCHAR(255) DEFAULT NULL, comment LONGTEXT NOT NULL, price NUMERIC(11, 5) DEFAULT NULL, price_currency_id INT DEFAULT NULL, last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, INDEX IDX_8C74887E2F180363 (id_assembly), INDEX IDX_8C74887EC22F6CC4 (id_part), INDEX IDX_8C74887EF12E799E (id_project), INDEX IDX_8C74887E3FFDCD60 (price_currency_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci`'); - $this->addSql('ALTER TABLE assemblies ADD CONSTRAINT FK_5F3832C0727ACA70 FOREIGN KEY (parent_id) REFERENCES assemblies (id)'); - $this->addSql('ALTER TABLE assemblies ADD CONSTRAINT FK_5F3832C0EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES `attachments` (id) ON DELETE SET NULL'); - $this->addSql('ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887E2F180363 FOREIGN KEY (id_assembly) REFERENCES assemblies (id)'); - $this->addSql('ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887EC22F6CC4 FOREIGN KEY (id_part) REFERENCES `parts` (id)'); - $this->addSql('ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887EF12E799E FOREIGN KEY (id_project) REFERENCES `projects` (id)'); - $this->addSql('ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887E3FFDCD60 FOREIGN KEY (price_currency_id) REFERENCES currencies (id)'); + $this->addSql(<<<'SQL' + CREATE TABLE assemblies ( + id INT AUTO_INCREMENT NOT NULL, + parent_id INT DEFAULT NULL, + id_preview_attachment INT DEFAULT NULL, + name VARCHAR(255) NOT NULL, + comment LONGTEXT NOT NULL, + not_selectable TINYINT(1) NOT NULL, + alternative_names LONGTEXT DEFAULT NULL, + order_quantity INT NOT NULL, + status VARCHAR(64) DEFAULT NULL, + order_only_missing_parts TINYINT(1) NOT NULL, + description LONGTEXT NOT NULL, + last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + INDEX IDX_5F3832C0727ACA70 (parent_id), + INDEX IDX_5F3832C0EA7100A1 (id_preview_attachment), + PRIMARY KEY(id) + ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` + SQL); + $this->addSql(<<<'SQL' + CREATE TABLE assembly_bom_entries ( + id INT AUTO_INCREMENT NOT NULL, + id_assembly INT DEFAULT NULL, + id_part INT DEFAULT NULL, + id_project INT DEFAULT NULL, + quantity DOUBLE PRECISION NOT NULL, + mountnames LONGTEXT NOT NULL, + name VARCHAR(255) DEFAULT NULL, + comment LONGTEXT NOT NULL, + price NUMERIC(11, 5) DEFAULT NULL, + price_currency_id INT DEFAULT NULL, + last_modified DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + datetime_added DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, + INDEX IDX_8C74887E2F180363 (id_assembly), + INDEX IDX_8C74887EC22F6CC4 (id_part), + INDEX IDX_8C74887EF12E799E (id_project), + INDEX IDX_8C74887E3FFDCD60 (price_currency_id), + PRIMARY KEY(id) + ) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assemblies ADD CONSTRAINT FK_5F3832C0727ACA70 FOREIGN KEY (parent_id) REFERENCES assemblies (id) + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assemblies ADD CONSTRAINT FK_5F3832C0EA7100A1 FOREIGN KEY (id_preview_attachment) REFERENCES `attachments` (id) ON DELETE SET NULL + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887E2F180363 FOREIGN KEY (id_assembly) REFERENCES assemblies (id) + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887EC22F6CC4 FOREIGN KEY (id_part) REFERENCES `parts` (id) + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887EF12E799E FOREIGN KEY (id_project) REFERENCES `projects` (id) + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries ADD CONSTRAINT FK_8C74887E3FFDCD60 FOREIGN KEY (price_currency_id) REFERENCES currencies (id) + SQL); } public function mySQLDown(Schema $schema): void { - $this->addSql('ALTER TABLE assemblies DROP FOREIGN KEY FK_5F3832C0727ACA70'); - $this->addSql('ALTER TABLE assemblies DROP FOREIGN KEY FK_5F3832C0EA7100A1'); - $this->addSql('ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887E2F180363'); - $this->addSql('ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887EC22F6CC4'); - $this->addSql('ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887EF12E799E'); - $this->addSql('ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887E3FFDCD60'); - $this->addSql('DROP TABLE assemblies'); - $this->addSql('DROP TABLE assembly_bom_entries'); + $this->addSql(<<<'SQL' + ALTER TABLE assemblies DROP FOREIGN KEY FK_5F3832C0727ACA70 + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assemblies DROP FOREIGN KEY FK_5F3832C0EA7100A1 + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887E2F180363 + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887EC22F6CC4 + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887EF12E799E + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE assembly_bom_entries DROP FOREIGN KEY FK_8C74887E3FFDCD60 + SQL); + $this->addSql(<<<'SQL' + DROP TABLE assemblies + SQL); + $this->addSql(<<<'SQL' + DROP TABLE assembly_bom_entries + SQL); } public function sqLiteUp(Schema $schema): void diff --git a/migrations/Version20250304154507.php b/migrations/Version20250304154507.php index 904a3b65..4f7fed2f 100644 --- a/migrations/Version20250304154507.php +++ b/migrations/Version20250304154507.php @@ -17,16 +17,28 @@ final class Version20250304154507 extends AbstractMultiPlatformMigration public function mySQLUp(Schema $schema): void { - $this->addSql('ALTER TABLE parts ADD built_assembly_id INT DEFAULT NULL'); - $this->addSql('ALTER TABLE parts ADD CONSTRAINT FK_6940A7FECC660B3C FOREIGN KEY (built_assembly_id) REFERENCES assemblies (id)'); - $this->addSql('CREATE UNIQUE INDEX UNIQ_6940A7FECC660B3C ON parts (built_assembly_id)'); + $this->addSql(<<<'SQL' + ALTER TABLE parts ADD built_assembly_id INT DEFAULT NULL + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE parts ADD CONSTRAINT FK_6940A7FECC660B3C FOREIGN KEY (built_assembly_id) REFERENCES assemblies (id) + SQL); + $this->addSql(<<<'SQL' + CREATE UNIQUE INDEX UNIQ_6940A7FECC660B3C ON parts (built_assembly_id) + SQL); } public function mySQLDown(Schema $schema): void { - $this->addSql('ALTER TABLE `parts` DROP FOREIGN KEY FK_6940A7FECC660B3C'); - $this->addSql('DROP INDEX UNIQ_6940A7FECC660B3C ON `parts`'); - $this->addSql('ALTER TABLE `parts` DROP built_assembly_id'); + $this->addSql(<<<'SQL' + ALTER TABLE parts DROP FOREIGN KEY FK_6940A7FECC660B3C + SQL); + $this->addSql(<<<'SQL' + DROP INDEX UNIQ_6940A7FECC660B3C ON parts + SQL); + $this->addSql(<<<'SQL' + ALTER TABLE `parts` DROP built_assembly_id + SQL); } public function sqLiteUp(Schema $schema): void