<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20221213133715 extends AbstractMigration
{
public function getDescription(): string
{
return 'Change additionalProperties field relation to ManyToMany';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE mandate_property (mandate_id INT NOT NULL, property_id INT NOT NULL, PRIMARY KEY(mandate_id, property_id))');
$this->addSql('CREATE INDEX IDX_2780F3D36C1129CD ON mandate_property (mandate_id)');
$this->addSql('CREATE INDEX IDX_2780F3D3549213EC ON mandate_property (property_id)');
$this->addSql('ALTER TABLE mandate_property ADD CONSTRAINT FK_2780F3D36C1129CD FOREIGN KEY (mandate_id) REFERENCES mandate (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE mandate_property ADD CONSTRAINT FK_2780F3D3549213EC FOREIGN KEY (property_id) REFERENCES property (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE property DROP CONSTRAINT fk_8bf21cde6c1129cd');
$this->addSql('DROP INDEX idx_8bf21cde6c1129cd');
$this->addSql('ALTER TABLE property DROP mandate_id');
}
public function down(Schema $schema): void
{
$this->addSql('DROP TABLE mandate_property');
$this->addSql('ALTER TABLE property ADD mandate_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE property ADD CONSTRAINT fk_8bf21cde6c1129cd FOREIGN KEY (mandate_id) REFERENCES mandate (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX idx_8bf21cde6c1129cd ON property (mandate_id)');
}
}