<?php declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20210422112245 extends AbstractMigration
{
public function getDescription(): string
{
return 'Time normalization month and year';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE time_norm_month (
id UUID NOT NULL, year_id INT DEFAULT NULL,
number INT DEFAULT 0 NOT NULL,
title VARCHAR(255) NOT NULL,
PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_96BCD8DC40C1FEA7 ON time_norm_month (year_id)');
$this->addSql('COMMENT ON COLUMN time_norm_month.id IS \'(DC2Type:uuid)\'');
$this->addSql('CREATE TABLE time_norm_month_part (
id UUID NOT NULL,
month_id UUID DEFAULT NULL,
first BOOLEAN DEFAULT \'true\' NOT NULL,
period_date_start DATE NOT NULL,
period_date_end DATE NOT NULL,
PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_5090291BA0CBDE4 ON time_norm_month_part (month_id)');
$this->addSql('COMMENT ON COLUMN time_norm_month_part.id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN time_norm_month_part.month_id IS \'(DC2Type:uuid)\'');
$this->addSql('COMMENT ON COLUMN time_norm_month_part.period_date_start IS \'(DC2Type:date_immutable)\'');
$this->addSql('COMMENT ON COLUMN time_norm_month_part.period_date_end IS \'(DC2Type:date_immutable)\'');
$this->addSql('CREATE TABLE time_norm_year (year INT NOT NULL, PRIMARY KEY(year))');
$this->addSql('ALTER TABLE time_norm_month ADD CONSTRAINT FK_96BCD8DC40C1FEA7 FOREIGN KEY (year_id) REFERENCES time_norm_year (year) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE time_norm_month_part ADD CONSTRAINT FK_5090291BA0CBDE4 FOREIGN KEY (month_id) REFERENCES time_norm_month (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE time_norm_month_part DROP CONSTRAINT FK_5090291BA0CBDE4');
$this->addSql('ALTER TABLE time_norm_month DROP CONSTRAINT FK_96BCD8DC40C1FEA7');
$this->addSql('DROP TABLE time_norm_month');
$this->addSql('DROP TABLE time_norm_month_part');
$this->addSql('DROP TABLE time_norm_year');
}
}