<?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 Version20241210164611 extends AbstractMigration
{
public function getDescription(): string
{
return 'Drop city from shop & from country and add a many to many relation with shop';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE shop DROP FOREIGN KEY FK_AC6A4CA28BAC62AF');
$this->addSql('CREATE TABLE shop_country (shop_id INT NOT NULL, country_id INT NOT NULL, INDEX IDX_5040894C4D16C4DD (shop_id), INDEX IDX_5040894CF92F3E70 (country_id), PRIMARY KEY(shop_id, country_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE shop_country ADD CONSTRAINT FK_5040894C4D16C4DD FOREIGN KEY (shop_id) REFERENCES shop (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE shop_country ADD CONSTRAINT FK_5040894CF92F3E70 FOREIGN KEY (country_id) REFERENCES country (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE city DROP FOREIGN KEY FK_2D5B0234F92F3E70');
$this->addSql('DROP TABLE city');
$this->addSql('DROP INDEX IDX_AC6A4CA28BAC62AF ON shop');
$this->addSql('ALTER TABLE shop DROP city_id');
$this->addSql('DELETE FROM country');
$this->addSql('ALTER TABLE country AUTO_INCREMENT = 1');
$this->addSql("INSERT INTO country (name, code, local_code, created_at, updated_at) VALUES ('France', 'FR', 'fr_FR', NOW(), NOW()), ('Belgique', 'BE', 'nl-BE', NOW(), NOW())");
$this->addSql('INSERT INTO shop_country (shop_id, country_id) SELECT id, 1 FROM shop');
}
public function down(Schema $schema): void
{
$this->addSql('CREATE TABLE city (id INT AUTO_INCREMENT NOT NULL, country_id INT DEFAULT NULL, name VARCHAR(255) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_2D5B0234F92F3E70 (country_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB COMMENT = \'\' ');
$this->addSql('ALTER TABLE city ADD CONSTRAINT FK_2D5B0234F92F3E70 FOREIGN KEY (country_id) REFERENCES country (id)');
$this->addSql('ALTER TABLE shop_country DROP FOREIGN KEY FK_5040894C4D16C4DD');
$this->addSql('ALTER TABLE shop_country DROP FOREIGN KEY FK_5040894CF92F3E70');
$this->addSql('DROP TABLE shop_country');
$this->addSql('ALTER TABLE shop ADD city_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE shop ADD CONSTRAINT FK_AC6A4CA28BAC62AF FOREIGN KEY (city_id) REFERENCES city (id)');
$this->addSql('CREATE INDEX IDX_AC6A4CA28BAC62AF ON shop (city_id)');
}
}