From a21914312a5762ab12ce9fca4d876bbab0491c93 Mon Sep 17 00:00:00 2001 From: matthieu Date: Tue, 19 May 2026 19:51:57 +0200 Subject: [PATCH] feat(workflow) : migration M3 - workflow requis sur Project (RESTRICT) --- migrations/Version20260519175142.php | 38 ++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 migrations/Version20260519175142.php diff --git a/migrations/Version20260519175142.php b/migrations/Version20260519175142.php new file mode 100644 index 0000000..6f89e01 --- /dev/null +++ b/migrations/Version20260519175142.php @@ -0,0 +1,38 @@ +connection->fetchOne("SELECT id FROM workflow WHERE name = 'Standard'"); + if (!$standardId) { + throw new MigrationException('Workflow Standard introuvable.'); + } + + $this->addSql('ALTER TABLE project ADD COLUMN workflow_id INT DEFAULT NULL'); + $this->addSql("UPDATE project SET workflow_id = {$standardId}"); + $this->addSql('ALTER TABLE project ALTER COLUMN workflow_id SET NOT NULL'); + $this->addSql('ALTER TABLE project ADD CONSTRAINT FK_project_workflow FOREIGN KEY (workflow_id) REFERENCES workflow (id) ON DELETE RESTRICT NOT DEFERRABLE'); + $this->addSql('CREATE INDEX IDX_project_workflow ON project (workflow_id)'); + } + + public function down(Schema $schema): void + { + $this->addSql('ALTER TABLE project DROP CONSTRAINT FK_project_workflow'); + $this->addSql('DROP INDEX IDX_project_workflow'); + $this->addSql('ALTER TABLE project DROP COLUMN workflow_id'); + } +}