zend-blog-3-backend
48 строк · 3.2 Кб
1<?php
2
3namespace Application\Migrations;
4
5use Doctrine\DBAL\Schema\Schema;
6use Doctrine\Migrations\AbstractMigration;
7
8/**
9* Auto-generated Migration: Please modify to your needs!
10*/
11class Version20161113144623 extends AbstractMigration
12{
13/**
14* @param Schema $schema
15*/
16public function up(Schema $schema): void
17{
18// this up() migration is auto-generated, please modify it to your needs
19$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
20
21$this->addSql('CREATE TABLE geo_location (id INT AUTO_INCREMENT NOT NULL, city_id INT NOT NULL, ip_addr VARCHAR(15) NOT NULL, time_created DATETIME NOT NULL, UNIQUE INDEX UNIQ_B027FE6A41FDCEBA (ip_addr), INDEX IDX_B027FE6A8BAC62AF (city_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
22$this->addSql('CREATE TABLE geo_location_city (id INT AUTO_INCREMENT NOT NULL, country_id INT NOT NULL, city VARCHAR(128) NOT NULL, region VARCHAR(128) NOT NULL, latitude DOUBLE PRECISION NOT NULL, longitude DOUBLE PRECISION NOT NULL, zip VARCHAR(30) NOT NULL, time_zone VARCHAR(8) NOT NULL, time_created DATETIME NOT NULL, INDEX IDX_1C82828AF92F3E70 (country_id), UNIQUE INDEX UNIQ_1C82828A2D5B0234F62F176 (city, region), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
23$this->addSql('CREATE TABLE geo_location_country (id INT AUTO_INCREMENT NOT NULL, country_code VARCHAR(2) NOT NULL, country_name VARCHAR(64) NOT NULL, time_created DATETIME NOT NULL, UNIQUE INDEX UNIQ_583FE876F026BB7C (country_code), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
24$this->addSql('ALTER TABLE geo_location ADD CONSTRAINT FK_B027FE6A8BAC62AF FOREIGN KEY (city_id) REFERENCES geo_location_city (id) ON DELETE RESTRICT');
25$this->addSql('ALTER TABLE geo_location_city ADD CONSTRAINT FK_1C82828AF92F3E70 FOREIGN KEY (country_id) REFERENCES geo_location_country (id) ON DELETE RESTRICT');
26$this->addSql('ALTER TABLE comments ADD geo_location_id INT DEFAULT NULL');
27$this->addSql('ALTER TABLE comments ADD CONSTRAINT FK_5F9E962AC34F22E FOREIGN KEY (geo_location_id) REFERENCES geo_location (id) ON DELETE SET NULL');
28$this->addSql('CREATE INDEX IDX_5F9E962AC34F22E ON comments (geo_location_id)');
29}
30
31/**
32* @param Schema $schema
33*/
34public function down(Schema $schema): void
35{
36// this down() migration is auto-generated, please modify it to your needs
37$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
38
39$this->addSql('ALTER TABLE comments DROP FOREIGN KEY FK_5F9E962AC34F22E');
40$this->addSql('ALTER TABLE geo_location DROP FOREIGN KEY FK_B027FE6A8BAC62AF');
41$this->addSql('ALTER TABLE geo_location_city DROP FOREIGN KEY FK_1C82828AF92F3E70');
42$this->addSql('DROP TABLE geo_location');
43$this->addSql('DROP TABLE geo_location_city');
44$this->addSql('DROP TABLE geo_location_country');
45$this->addSql('DROP INDEX IDX_5F9E962AC34F22E ON comments');
46$this->addSql('ALTER TABLE comments DROP geo_location_id');
47}
48}
49