migrations/Version20221217123924.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. final class Version20221217123924 extends AbstractMigration
  7. {
  8.     public function getDescription(): string
  9.     {
  10.         return 'Add geolocation table';
  11.     }
  12.     public function up(Schema $schema): void
  13.     {
  14.         $this->addSql('CREATE TABLE geolocation (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, country_id INT UNSIGNED DEFAULT NULL, creator_id BIGINT UNSIGNED NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, latitude DOUBLE PRECISION NOT NULL, longitude DOUBLE PRECISION NOT NULL, active TINYINT(1) NOT NULL, UNIQUE INDEX UNIQ_9DC0E5B4F92F3E70 (country_id), UNIQUE INDEX UNIQ_9DC0E5B461220EA6 (creator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB');
  15.         $this->addSql('ALTER TABLE geolocation ADD CONSTRAINT FK_9DC0E5B4F92F3E70 FOREIGN KEY (country_id) REFERENCES country (id)');
  16.         $this->addSql('ALTER TABLE geolocation ADD CONSTRAINT FK_9DC0E5B461220EA6 FOREIGN KEY (creator_id) REFERENCES creator (id)');
  17.         $this->addSql('ALTER TABLE creator ADD geolocation_id BIGINT UNSIGNED DEFAULT NULL');
  18.         $this->addSql('ALTER TABLE creator ADD CONSTRAINT FK_BC06EA631C7B5678 FOREIGN KEY (geolocation_id) REFERENCES geolocation (id)');
  19.         $this->addSql('CREATE UNIQUE INDEX UNIQ_BC06EA631C7B5678 ON creator (geolocation_id)');
  20.     }
  21.     public function down(Schema $schema): void
  22.     {
  23.         $this->addSql('ALTER TABLE creator DROP FOREIGN KEY FK_BC06EA631C7B5678');
  24.         $this->addSql('DROP TABLE geolocation');
  25.         $this->addSql('DROP INDEX UNIQ_BC06EA631C7B5678 ON creator');
  26.         $this->addSql('ALTER TABLE creator DROP geolocation_id');
  27.     }
  28.     public function isTransactional(): bool
  29.     {
  30.         return false;
  31.     }
  32. }