Completed
Push — master ( 7f932d...1b8129 )
by Tarmo
06:16 queued 06:09
created

Version20211118171749::getDescription()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
declare(strict_types = 1);
3
4
// phpcs:ignoreFile
5
namespace DoctrineMigrations;
6
7
use Doctrine\DBAL\Exception;
8
use Doctrine\DBAL\Schema\Schema;
9
use Doctrine\Migrations\AbstractMigration;
10
11
/**
12
 * Auto-generated Migration: Please modify to your needs!
13
 */
14
final class Version20211118171749 extends AbstractMigration
15
{
16
    /**
17
     * @noinspection PhpMissingParentCallCommonInspection
18
     */
19
    public function getDescription(): string
20
    {
21
        return 'TODO: Describe reason for this migration';
22
    }
23
24
    /**
25
     * @throws Exception
26
     */
27
    public function up(Schema $schema): void
28
    {
29
        // this up() migration is auto-generated, please modify it to your needs
30
        $this->abortIf(
31
            $this->connection->getDatabasePlatform()->getName() !== 'mysql',
32
            'Migration can only be executed safely on \'mysql\'.'
33
        );
34
35
        $this->addSql('CREATE TABLE api_key (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', token VARCHAR(40) NOT NULL COMMENT \'Generated API key string for authentication\', description LONGTEXT NOT NULL, created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', created_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_C912ED9DB03A8386 (created_by_id), INDEX IDX_C912ED9D896DBBDE (updated_by_id), UNIQUE INDEX uq_token (token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
36
        $this->addSql('CREATE TABLE api_key_has_user_group (api_key_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', user_group_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', INDEX IDX_E2D0E7F98BE312B3 (api_key_id), INDEX IDX_E2D0E7F91ED93D47 (user_group_id), PRIMARY KEY(api_key_id, user_group_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
37
        $this->addSql('CREATE TABLE date_dimension (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', year INT NOT NULL COMMENT \'A full numeric representation of a year, 4 digits\', month INT NOT NULL COMMENT \'Day of the month without leading zeros; 1 to 12\', day INT NOT NULL COMMENT \'Day of the month without leading zeros; 1 to 31\', quarter INT NOT NULL COMMENT \'Calendar quarter; 1, 2, 3 or 4\', week_number INT NOT NULL COMMENT \'ISO-8601 week number of year, weeks starting on Monday\', day_number_of_week INT NOT NULL COMMENT \'ISO-8601 numeric representation of the day of the week; 1 (for Monday) to 7 (for Sunday)\', day_number_of_year INT NOT NULL COMMENT \'The day of the year (starting from 0); 0 through 365\', leap_year TINYINT(1) NOT NULL COMMENT \'Whether it\'\'s a leap year or not\', week_numbering_year INT NOT NULL COMMENT \'ISO-8601 week-numbering year.\', unix_time BIGINT NOT NULL COMMENT \'Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)\', date DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', INDEX date (date), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
38
        $this->addSql('CREATE TABLE healthz (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', timestamp DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
39
        $this->addSql('CREATE TABLE log_login (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', user_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', client_type VARCHAR(255) DEFAULT NULL, client_name VARCHAR(255) DEFAULT NULL, client_short_name VARCHAR(255) DEFAULT NULL, client_version VARCHAR(255) DEFAULT NULL, client_engine VARCHAR(255) DEFAULT NULL, os_name VARCHAR(255) DEFAULT NULL, os_short_name VARCHAR(255) DEFAULT NULL, os_version VARCHAR(255) DEFAULT NULL, os_platform VARCHAR(255) DEFAULT NULL, device_name VARCHAR(255) DEFAULT NULL, brand_name VARCHAR(255) DEFAULT NULL, model VARCHAR(255) DEFAULT NULL, type ENUM(\'failure\', \'success\') NOT NULL COMMENT \'(DC2Type:EnumLogLogin)\', time DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', `date` DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', agent LONGTEXT NOT NULL, http_host VARCHAR(255) NOT NULL, client_ip VARCHAR(255) NOT NULL, INDEX user_id (user_id), INDEX date (date), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
40
        $this->addSql('CREATE TABLE log_login_failure (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', user_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', timestamp DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX user_id (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
41
        $this->addSql('CREATE TABLE log_request (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', user_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', api_key_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', status_code INT NOT NULL, response_content_length INT NOT NULL, is_main_request TINYINT(1) NOT NULL, time DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', `date` DATE NOT NULL COMMENT \'(DC2Type:date_immutable)\', agent LONGTEXT NOT NULL, http_host VARCHAR(255) NOT NULL, client_ip VARCHAR(255) NOT NULL, headers LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\', method VARCHAR(255) NOT NULL, scheme VARCHAR(5) NOT NULL, base_path VARCHAR(255) NOT NULL, script VARCHAR(255) NOT NULL, path VARCHAR(255) DEFAULT NULL, query_string LONGTEXT DEFAULT NULL, uri LONGTEXT NOT NULL, controller VARCHAR(255) DEFAULT NULL, content_type VARCHAR(255) DEFAULT NULL, content_type_short VARCHAR(255) DEFAULT NULL, is_xml_http_request TINYINT(1) NOT NULL, action VARCHAR(255) DEFAULT NULL, content LONGTEXT DEFAULT NULL, parameters LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\', INDEX user_id (user_id), INDEX api_key_id (api_key_id), INDEX request_date (date), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
42
        $this->addSql('CREATE TABLE role (role VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', created_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_57698A6AB03A8386 (created_by_id), INDEX IDX_57698A6A896DBBDE (updated_by_id), UNIQUE INDEX uq_role (role), PRIMARY KEY(role)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
43
        $this->addSql('CREATE TABLE user (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', username VARCHAR(255) NOT NULL, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, language ENUM(\'en\', \'fi\') NOT NULL COMMENT \'User language for translations(DC2Type:EnumLanguage)\', locale ENUM(\'en\', \'fi\') NOT NULL COMMENT \'User locale for number, time, date, etc. formatting.(DC2Type:EnumLocale)\', timezone VARCHAR(255) DEFAULT \'Europe/Helsinki\' NOT NULL COMMENT \'User timezone which should be used to display time, date, etc.\', password VARCHAR(255) NOT NULL COMMENT \'Hashed password\', created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\',  created_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_8D93D649B03A8386 (created_by_id), INDEX IDX_8D93D649896DBBDE (updated_by_id), UNIQUE INDEX uq_username (username), UNIQUE INDEX uq_email (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
44
        $this->addSql('CREATE TABLE user_has_user_group (user_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', user_group_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', INDEX IDX_2C59957A76ED395 (user_id), INDEX IDX_2C599571ED93D47 (user_group_id), PRIMARY KEY(user_id, user_group_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
45
        $this->addSql('CREATE TABLE user_group (id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', role VARCHAR(255) DEFAULT NULL, name VARCHAR(255) NOT NULL, created_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', updated_by_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid_binary_ordered_time)\', created_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', updated_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_8F02BF9D57698A6A (role), INDEX IDX_8F02BF9DB03A8386 (created_by_id), INDEX IDX_8F02BF9D896DBBDE (updated_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_swedish_ci` ENGINE = InnoDB');
46
        $this->addSql('ALTER TABLE api_key ADD CONSTRAINT FK_C912ED9DB03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id) ON DELETE SET NULL');
47
        $this->addSql('ALTER TABLE api_key ADD CONSTRAINT FK_C912ED9D896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id) ON DELETE SET NULL');
48
        $this->addSql('ALTER TABLE api_key_has_user_group ADD CONSTRAINT FK_E2D0E7F98BE312B3 FOREIGN KEY (api_key_id) REFERENCES api_key (id) ON DELETE CASCADE');
49
        $this->addSql('ALTER TABLE api_key_has_user_group ADD CONSTRAINT FK_E2D0E7F91ED93D47 FOREIGN KEY (user_group_id) REFERENCES user_group (id) ON DELETE CASCADE');
50
        $this->addSql('ALTER TABLE log_login ADD CONSTRAINT FK_8A76204DA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
51
        $this->addSql('ALTER TABLE log_login_failure ADD CONSTRAINT FK_EDB4AF3A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
52
        $this->addSql('ALTER TABLE log_request ADD CONSTRAINT FK_35AB708A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
53
        $this->addSql('ALTER TABLE log_request ADD CONSTRAINT FK_35AB7088BE312B3 FOREIGN KEY (api_key_id) REFERENCES api_key (id) ON DELETE SET NULL');
54
        $this->addSql('ALTER TABLE role ADD CONSTRAINT FK_57698A6AB03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id) ON DELETE SET NULL');
55
        $this->addSql('ALTER TABLE role ADD CONSTRAINT FK_57698A6A896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id) ON DELETE SET NULL');
56
        $this->addSql('ALTER TABLE user ADD CONSTRAINT FK_8D93D649B03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id) ON DELETE SET NULL');
57
        $this->addSql('ALTER TABLE user ADD CONSTRAINT FK_8D93D649896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id) ON DELETE SET NULL');
58
        $this->addSql('ALTER TABLE user_has_user_group ADD CONSTRAINT FK_2C59957A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
59
        $this->addSql('ALTER TABLE user_has_user_group ADD CONSTRAINT FK_2C599571ED93D47 FOREIGN KEY (user_group_id) REFERENCES user_group (id) ON DELETE CASCADE');
60
        $this->addSql('ALTER TABLE user_group ADD CONSTRAINT FK_8F02BF9D57698A6A FOREIGN KEY (role) REFERENCES role (role) ON DELETE CASCADE');
61
        $this->addSql('ALTER TABLE user_group ADD CONSTRAINT FK_8F02BF9DB03A8386 FOREIGN KEY (created_by_id) REFERENCES user (id) ON DELETE SET NULL');
62
        $this->addSql('ALTER TABLE user_group ADD CONSTRAINT FK_8F02BF9D896DBBDE FOREIGN KEY (updated_by_id) REFERENCES user (id) ON DELETE SET NULL');
63
    }
64
65
    /**
66
     * @noinspection PhpMissingParentCallCommonInspection
67
     *
68
     * @throws Exception
69
     */
70
    public function down(Schema $schema): void
71
    {
72
        // this down() migration is auto-generated, please modify it to your needs
73
        $this->abortIf(
74
            $this->connection->getDatabasePlatform()->getName() !== 'mysql',
75
            'Migration can only be executed safely on \'mysql\'.'
76
        );
77
78
        $this->addSql('ALTER TABLE api_key_has_user_group DROP FOREIGN KEY FK_E2D0E7F98BE312B3');
79
        $this->addSql('ALTER TABLE log_request DROP FOREIGN KEY FK_35AB7088BE312B3');
80
        $this->addSql('ALTER TABLE user_group DROP FOREIGN KEY FK_8F02BF9D57698A6A');
81
        $this->addSql('ALTER TABLE api_key DROP FOREIGN KEY FK_C912ED9DB03A8386');
82
        $this->addSql('ALTER TABLE api_key DROP FOREIGN KEY FK_C912ED9D896DBBDE');
83
        $this->addSql('ALTER TABLE log_login DROP FOREIGN KEY FK_8A76204DA76ED395');
84
        $this->addSql('ALTER TABLE log_login_failure DROP FOREIGN KEY FK_EDB4AF3A76ED395');
85
        $this->addSql('ALTER TABLE log_request DROP FOREIGN KEY FK_35AB708A76ED395');
86
        $this->addSql('ALTER TABLE role DROP FOREIGN KEY FK_57698A6AB03A8386');
87
        $this->addSql('ALTER TABLE role DROP FOREIGN KEY FK_57698A6A896DBBDE');
88
        $this->addSql('ALTER TABLE user DROP FOREIGN KEY FK_8D93D649B03A8386');
89
        $this->addSql('ALTER TABLE user DROP FOREIGN KEY FK_8D93D649896DBBDE');
90
        $this->addSql('ALTER TABLE user_has_user_group DROP FOREIGN KEY FK_2C59957A76ED395');
91
        $this->addSql('ALTER TABLE user_group DROP FOREIGN KEY FK_8F02BF9DB03A8386');
92
        $this->addSql('ALTER TABLE user_group DROP FOREIGN KEY FK_8F02BF9D896DBBDE');
93
        $this->addSql('ALTER TABLE api_key_has_user_group DROP FOREIGN KEY FK_E2D0E7F91ED93D47');
94
        $this->addSql('ALTER TABLE user_has_user_group DROP FOREIGN KEY FK_2C599571ED93D47');
95
        $this->addSql('DROP TABLE api_key');
96
        $this->addSql('DROP TABLE api_key_has_user_group');
97
        $this->addSql('DROP TABLE date_dimension');
98
        $this->addSql('DROP TABLE healthz');
99
        $this->addSql('DROP TABLE log_login');
100
        $this->addSql('DROP TABLE log_login_failure');
101
        $this->addSql('DROP TABLE log_request');
102
        $this->addSql('DROP TABLE role');
103
        $this->addSql('DROP TABLE user');
104
        $this->addSql('DROP TABLE user_has_user_group');
105
        $this->addSql('DROP TABLE user_group');
106
    }
107
}
108