<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20220119124740 extends AbstractMigration
{
public function getDescription(): string
{
return 'Foreign key cascade delete: Answer -> Question -> Question Set. Other references are set to null.';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE assortment_question_set_question DROP FOREIGN KEY FK_DE836D5D17A62210');
$this->addSql('ALTER TABLE assortment_question_set_question ADD CONSTRAINT FK_DE836D5D17A62210 FOREIGN KEY (question_set_id) REFERENCES assortment_question_set (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE assortment_question_set_question_answer DROP FOREIGN KEY FK_E54B3DBD1E27F6BF');
$this->addSql('ALTER TABLE assortment_question_set_question_answer ADD CONSTRAINT FK_E54B3DBD1E27F6BF FOREIGN KEY (question_id) REFERENCES assortment_question_set_question (id) ON DELETE CASCADE');
// manual
$this->addSql('ALTER TABLE assortment_product_position DROP FOREIGN KEY FK_67E9B5FE17A62210');
$this->addSql('ALTER TABLE assortment_product_position ADD CONSTRAINT FK_67E9B5FE17A62210 FOREIGN KEY (question_set_id) REFERENCES assortment_question_set (id) ON DELETE SET NULL');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE assortment_question_set_question DROP FOREIGN KEY FK_DE836D5D17A62210');
$this->addSql('ALTER TABLE assortment_question_set_question ADD CONSTRAINT FK_DE836D5D17A62210 FOREIGN KEY (question_set_id) REFERENCES assortment_question_set (id) ON UPDATE NO ACTION ON DELETE NO ACTION');
$this->addSql('ALTER TABLE assortment_question_set_question_answer DROP FOREIGN KEY FK_E54B3DBD1E27F6BF');
$this->addSql('ALTER TABLE assortment_question_set_question_answer ADD CONSTRAINT FK_E54B3DBD1E27F6BF FOREIGN KEY (question_id) REFERENCES assortment_question_set_question (id) ON UPDATE NO ACTION ON DELETE NO ACTION');
// manual
$this->addSql('ALTER TABLE assortment_product_position DROP FOREIGN KEY FK_67E9B5FE17A62210');
$this->addSql('ALTER TABLE assortment_product_position ADD CONSTRAINT FK_67E9B5FE17A62210 FOREIGN KEY (question_set_id) REFERENCES assortment_question_set (id) ON UPDATE NO ACTION ON DELETE NO ACTION');
}
public function isTransactional(): bool
{
return false;
}
}