Passed
Push — develop ( 49d2d6...5c0399 )
by Nicolas
03:53
created

Version20180326200407::down()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 17
nc 1
nop 1
dl 0
loc 20
ccs 0
cts 19
cp 0
crap 2
rs 9.7
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Migrations;
6
7
use Doctrine\DBAL\Schema\Schema;
8
use Doctrine\Migrations\AbstractMigration;
9
10
/**
11
 * Initial Migration.
12
 */
13
class Version20180326200407 extends AbstractMigration
14
{
15
    /**
16
     * {@inheritdoc}
17
     */
18
    public function up(Schema $schema): void
19
    {
20
        $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
21
22
        $this->addSql('CREATE TABLE rw_comment (id INT AUTO_INCREMENT NOT NULL, author_id INT DEFAULT NULL, article_id INT DEFAULT NULL, body LONGTEXT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_EAFFB7F675F31B (author_id), INDEX IDX_EAFFB77294869C (article_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
23
        $this->addSql('CREATE TABLE rw_article (id INT AUTO_INCREMENT NOT NULL, author_id INT DEFAULT NULL, title VARCHAR(255) NOT NULL, slug VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, body LONGTEXT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, UNIQUE INDEX UNIQ_96A4A3BD989D9B62 (slug), INDEX IDX_96A4A3BDF675F31B (author_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
24
        $this->addSql('CREATE TABLE rw_article_tag (article_id INT NOT NULL, tag_id INT NOT NULL, INDEX IDX_A9C3949B7294869C (article_id), INDEX IDX_A9C3949BBAD26311 (tag_id), PRIMARY KEY(article_id, tag_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
25
        $this->addSql('CREATE TABLE rw_user (id INT AUTO_INCREMENT NOT NULL, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, username VARCHAR(255) NOT NULL, bio LONGTEXT DEFAULT NULL, image LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, UNIQUE INDEX UNIQ_E628724AE7927C74 (email), UNIQUE INDEX UNIQ_E628724AF85E0677 (username), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
26
        $this->addSql('CREATE TABLE rw_user_follower (user_id INT NOT NULL, follower_id INT NOT NULL, INDEX IDX_E90DC36A76ED395 (user_id), INDEX IDX_E90DC36AC24F853 (follower_id), PRIMARY KEY(user_id, follower_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
27
        $this->addSql('CREATE TABLE rw_user_favorite (user_id INT NOT NULL, article_id INT NOT NULL, INDEX IDX_DF835BA9A76ED395 (user_id), INDEX IDX_DF835BA97294869C (article_id), PRIMARY KEY(user_id, article_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
28
        $this->addSql('CREATE TABLE rw_tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_D37C40D35E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
29
        $this->addSql('ALTER TABLE rw_comment ADD CONSTRAINT FK_EAFFB7F675F31B FOREIGN KEY (author_id) REFERENCES rw_user (id)');
30
        $this->addSql('ALTER TABLE rw_comment ADD CONSTRAINT FK_EAFFB77294869C FOREIGN KEY (article_id) REFERENCES rw_article (id)');
31
        $this->addSql('ALTER TABLE rw_article ADD CONSTRAINT FK_96A4A3BDF675F31B FOREIGN KEY (author_id) REFERENCES rw_user (id)');
32
        $this->addSql('ALTER TABLE rw_article_tag ADD CONSTRAINT FK_A9C3949B7294869C FOREIGN KEY (article_id) REFERENCES rw_article (id) ON DELETE CASCADE');
33
        $this->addSql('ALTER TABLE rw_article_tag ADD CONSTRAINT FK_A9C3949BBAD26311 FOREIGN KEY (tag_id) REFERENCES rw_tag (id) ON DELETE CASCADE');
34
        $this->addSql('ALTER TABLE rw_user_follower ADD CONSTRAINT FK_E90DC36A76ED395 FOREIGN KEY (user_id) REFERENCES rw_user (id)');
35
        $this->addSql('ALTER TABLE rw_user_follower ADD CONSTRAINT FK_E90DC36AC24F853 FOREIGN KEY (follower_id) REFERENCES rw_user (id)');
36
        $this->addSql('ALTER TABLE rw_user_favorite ADD CONSTRAINT FK_DF835BA9A76ED395 FOREIGN KEY (user_id) REFERENCES rw_user (id) ON DELETE CASCADE');
37
        $this->addSql('ALTER TABLE rw_user_favorite ADD CONSTRAINT FK_DF835BA97294869C FOREIGN KEY (article_id) REFERENCES rw_article (id) ON DELETE CASCADE');
38
    }
39
40
    /**
41
     * {@inheritdoc}
42
     */
43
    public function down(Schema $schema): void
44
    {
45
        $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
46
47
        $this->addSql('ALTER TABLE rw_comment DROP FOREIGN KEY FK_EAFFB77294869C');
48
        $this->addSql('ALTER TABLE rw_article_tag DROP FOREIGN KEY FK_A9C3949B7294869C');
49
        $this->addSql('ALTER TABLE rw_user_favorite DROP FOREIGN KEY FK_DF835BA97294869C');
50
        $this->addSql('ALTER TABLE rw_comment DROP FOREIGN KEY FK_EAFFB7F675F31B');
51
        $this->addSql('ALTER TABLE rw_article DROP FOREIGN KEY FK_96A4A3BDF675F31B');
52
        $this->addSql('ALTER TABLE rw_user_follower DROP FOREIGN KEY FK_E90DC36A76ED395');
53
        $this->addSql('ALTER TABLE rw_user_follower DROP FOREIGN KEY FK_E90DC36AC24F853');
54
        $this->addSql('ALTER TABLE rw_user_favorite DROP FOREIGN KEY FK_DF835BA9A76ED395');
55
        $this->addSql('ALTER TABLE rw_article_tag DROP FOREIGN KEY FK_A9C3949BBAD26311');
56
        $this->addSql('DROP TABLE rw_comment');
57
        $this->addSql('DROP TABLE rw_article');
58
        $this->addSql('DROP TABLE rw_article_tag');
59
        $this->addSql('DROP TABLE rw_user');
60
        $this->addSql('DROP TABLE rw_user_follower');
61
        $this->addSql('DROP TABLE rw_user_favorite');
62
        $this->addSql('DROP TABLE rw_tag');
63
    }
64
}
65