zend-blog-3-backend

Форк
0
/
Version20161113144623.php 
48 строк · 3.2 Кб
1
<?php
2

3
namespace Application\Migrations;
4

5
use Doctrine\DBAL\Schema\Schema;
6
use Doctrine\Migrations\AbstractMigration;
7

8
/**
9
 * Auto-generated Migration: Please modify to your needs!
10
 */
11
class Version20161113144623 extends AbstractMigration
12
{
13
    /**
14
     * @param Schema $schema
15
     */
16
    public 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
     */
34
    public 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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.