Completed
Push — master ( 334f6b...01d482 )
by Adrien
11:34
created

Version20181206141536::up()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 38
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 35
nc 1
nop 1
dl 0
loc 38
rs 9.36
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Migration;
6
7
use Doctrine\DBAL\Schema\Schema;
8
9
class Version20181206141536 extends AbstractMigration
10
{
11
    public function up(Schema $schema): void
12
    {
13
        $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
14
15
        $this->addSql('ALTER TABLE booking_resource DROP FOREIGN KEY FK_87A56A9B89329D25');
16
        $this->addSql('ALTER TABLE tag_resource DROP FOREIGN KEY FK_8AA08FCD89329D25');
17
        $this->addSql('ALTER TABLE tag_resource DROP FOREIGN KEY FK_8AA08FCDBAD26311');
18
        $this->addSql('ALTER TABLE tag_user DROP FOREIGN KEY FK_639C69FFBAD26311');
19
        $this->addSql('CREATE TABLE user_tag (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, owner_id INT DEFAULT NULL, updater_id INT DEFAULT NULL, creation_date DATETIME DEFAULT NULL, update_date DATETIME DEFAULT NULL, name VARCHAR(191) NOT NULL, color VARCHAR(7) DEFAULT \'\' NOT NULL, INDEX IDX_E89FD60861220EA6 (creator_id), INDEX IDX_E89FD6087E3C61F9 (owner_id), INDEX IDX_E89FD608E37ECFB0 (updater_id), UNIQUE INDEX unique_name (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
20
        $this->addSql('CREATE TABLE user_tag_user (user_tag_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_83118DFFDF80782C (user_tag_id), INDEX IDX_83118DFFA76ED395 (user_id), PRIMARY KEY(user_tag_id, user_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
21
        $this->addSql('CREATE TABLE bookable (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, owner_id INT DEFAULT NULL, updater_id INT DEFAULT NULL, creation_date DATETIME DEFAULT NULL, update_date DATETIME DEFAULT NULL, initial_price NUMERIC(10, 0) DEFAULT \'0\' NOT NULL, periodic_price NUMERIC(10, 0) DEFAULT \'0\' NOT NULL, simultaneous_booking_maximum SMALLINT UNSIGNED DEFAULT 1 NOT NULL, booking_type ENUM(\'self_approved\', \'admin_approved\', \'admin_only\', \'mandatory\') DEFAULT \'self_approved\' NOT NULL COMMENT \'(DC2Type:BookingType)\', name VARCHAR(191) NOT NULL, description TEXT NOT NULL, code VARCHAR(10) DEFAULT \'\' NOT NULL, INDEX IDX_A10B812461220EA6 (creator_id), INDEX IDX_A10B81247E3C61F9 (owner_id), INDEX IDX_A10B8124E37ECFB0 (updater_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
22
        $this->addSql('CREATE TABLE booking_bookable (booking_id INT NOT NULL, bookable_id INT NOT NULL, INDEX IDX_9A3F1FA93301C60 (booking_id), INDEX IDX_9A3F1FA9EC4F5B2F (bookable_id), PRIMARY KEY(booking_id, bookable_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
23
        $this->addSql('CREATE TABLE license (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, owner_id INT DEFAULT NULL, updater_id INT DEFAULT NULL, creation_date DATETIME DEFAULT NULL, update_date DATETIME DEFAULT NULL, name VARCHAR(191) NOT NULL, INDEX IDX_5768F41961220EA6 (creator_id), INDEX IDX_5768F4197E3C61F9 (owner_id), INDEX IDX_5768F419E37ECFB0 (updater_id), UNIQUE INDEX unique_name (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
24
        $this->addSql('CREATE TABLE license_bookable (license_id INT NOT NULL, bookable_id INT NOT NULL, INDEX IDX_5D5B1013460F904B (license_id), INDEX IDX_5D5B1013EC4F5B2F (bookable_id), PRIMARY KEY(license_id, bookable_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
25
        $this->addSql('CREATE TABLE license_user (license_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_77C835A460F904B (license_id), INDEX IDX_77C835AA76ED395 (user_id), PRIMARY KEY(license_id, user_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
26
        $this->addSql('ALTER TABLE user_tag ADD CONSTRAINT FK_E89FD60861220EA6 FOREIGN KEY (creator_id) REFERENCES user (id)');
27
        $this->addSql('ALTER TABLE user_tag ADD CONSTRAINT FK_E89FD6087E3C61F9 FOREIGN KEY (owner_id) REFERENCES user (id)');
28
        $this->addSql('ALTER TABLE user_tag ADD CONSTRAINT FK_E89FD608E37ECFB0 FOREIGN KEY (updater_id) REFERENCES user (id)');
29
        $this->addSql('ALTER TABLE user_tag_user ADD CONSTRAINT FK_83118DFFDF80782C FOREIGN KEY (user_tag_id) REFERENCES user_tag (id) ON DELETE CASCADE');
30
        $this->addSql('ALTER TABLE user_tag_user ADD CONSTRAINT FK_83118DFFA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
31
        $this->addSql('ALTER TABLE bookable ADD CONSTRAINT FK_A10B812461220EA6 FOREIGN KEY (creator_id) REFERENCES user (id)');
32
        $this->addSql('ALTER TABLE bookable ADD CONSTRAINT FK_A10B81247E3C61F9 FOREIGN KEY (owner_id) REFERENCES user (id)');
33
        $this->addSql('ALTER TABLE bookable ADD CONSTRAINT FK_A10B8124E37ECFB0 FOREIGN KEY (updater_id) REFERENCES user (id)');
34
        $this->addSql('ALTER TABLE booking_bookable ADD CONSTRAINT FK_9A3F1FA93301C60 FOREIGN KEY (booking_id) REFERENCES booking (id) ON DELETE CASCADE');
35
        $this->addSql('ALTER TABLE booking_bookable ADD CONSTRAINT FK_9A3F1FA9EC4F5B2F FOREIGN KEY (bookable_id) REFERENCES bookable (id) ON DELETE CASCADE');
36
        $this->addSql('ALTER TABLE license ADD CONSTRAINT FK_5768F41961220EA6 FOREIGN KEY (creator_id) REFERENCES user (id)');
37
        $this->addSql('ALTER TABLE license ADD CONSTRAINT FK_5768F4197E3C61F9 FOREIGN KEY (owner_id) REFERENCES user (id)');
38
        $this->addSql('ALTER TABLE license ADD CONSTRAINT FK_5768F419E37ECFB0 FOREIGN KEY (updater_id) REFERENCES user (id)');
39
        $this->addSql('ALTER TABLE license_bookable ADD CONSTRAINT FK_5D5B1013460F904B FOREIGN KEY (license_id) REFERENCES license (id) ON DELETE CASCADE');
40
        $this->addSql('ALTER TABLE license_bookable ADD CONSTRAINT FK_5D5B1013EC4F5B2F FOREIGN KEY (bookable_id) REFERENCES bookable (id) ON DELETE CASCADE');
41
        $this->addSql('ALTER TABLE license_user ADD CONSTRAINT FK_77C835A460F904B FOREIGN KEY (license_id) REFERENCES license (id) ON DELETE CASCADE');
42
        $this->addSql('ALTER TABLE license_user ADD CONSTRAINT FK_77C835AA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
43
        $this->addSql('DROP TABLE booking_resource');
44
        $this->addSql('DROP TABLE resource');
45
        $this->addSql('DROP TABLE tag');
46
        $this->addSql('DROP TABLE tag_resource');
47
        $this->addSql('DROP TABLE tag_user');
48
        $this->addSql('ALTER TABLE booking ADD status ENUM(\'application\', \'booked\', \'processed\') DEFAULT \'application\' NOT NULL COMMENT \'(DC2Type:BookingStatus)\'');
49
    }
50
}
51