<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20191003144428 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
$this->addSql('CREATE TABLE project_card (id INT AUTO_INCREMENT NOT NULL, project_id INT DEFAULT NULL, user_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, created_at DATETIME NOT NULL, modified_at DATETIME NOT NULL, INDEX IDX_2F8550CB166D1F9C (project_id), INDEX IDX_2F8550CBA76ED395 (user_id), INDEX idx_name (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project_comment (id INT AUTO_INCREMENT NOT NULL, item_id INT DEFAULT NULL, user_id INT DEFAULT NULL, body LONGTEXT NOT NULL, created_at DATETIME NOT NULL, modified_at DATETIME NOT NULL, INDEX IDX_26A5E09126F525E (item_id), INDEX IDX_26A5E09A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project_item (id INT AUTO_INCREMENT NOT NULL, project_id INT DEFAULT NULL, card_id INT DEFAULT NULL, user_id INT DEFAULT NULL, tag_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, enabled TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, modified_at DATETIME NOT NULL, INDEX IDX_268AED06166D1F9C (project_id), INDEX IDX_268AED064ACC9A20 (card_id), INDEX IDX_268AED06A76ED395 (user_id), INDEX IDX_268AED06BAD26311 (tag_id), INDEX idx_name (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project_participant (id INT AUTO_INCREMENT NOT NULL, item_id INT DEFAULT NULL, user_id INT DEFAULT NULL, viewed TINYINT(1) NOT NULL, unread TINYINT(1) NOT NULL, INDEX IDX_1F509CEA126F525E (item_id), INDEX IDX_1F509CEAA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT NOT NULL, enabled TINYINT(1) NOT NULL, created_at DATETIME NOT NULL, modified_at DATETIME NOT NULL, allow_all_users TINYINT(1) NOT NULL, allow_all_groups TINYINT(1) NOT NULL, INDEX IDX_2FB3D0EEA76ED395 (user_id), INDEX idx_name (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project_join_user (project_id INT NOT NULL, user_id INT NOT NULL, INDEX IDX_DF7DE07166D1F9C (project_id), INDEX IDX_DF7DE07A76ED395 (user_id), PRIMARY KEY(project_id, user_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project_join_group (project_id INT NOT NULL, group_id INT NOT NULL, INDEX IDX_FC244C5A166D1F9C (project_id), INDEX IDX_FC244C5AFE54D947 (group_id), PRIMARY KEY(project_id, group_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('CREATE TABLE project_tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, color VARCHAR(6) DEFAULT NULL, INDEX idx_name (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB');
$this->addSql('ALTER TABLE project_card ADD CONSTRAINT FK_2F8550CB166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_card ADD CONSTRAINT FK_2F8550CBA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE project_comment ADD CONSTRAINT FK_26A5E09126F525E FOREIGN KEY (item_id) REFERENCES project_item (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_comment ADD CONSTRAINT FK_26A5E09A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE project_item ADD CONSTRAINT FK_268AED06166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_item ADD CONSTRAINT FK_268AED064ACC9A20 FOREIGN KEY (card_id) REFERENCES project_card (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE project_item ADD CONSTRAINT FK_268AED06A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE project_item ADD CONSTRAINT FK_268AED06BAD26311 FOREIGN KEY (tag_id) REFERENCES project_tag (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE project_participant ADD CONSTRAINT FK_1F509CEA126F525E FOREIGN KEY (item_id) REFERENCES project_item (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_participant ADD CONSTRAINT FK_1F509CEAA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project ADD CONSTRAINT FK_2FB3D0EEA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE project_join_user ADD CONSTRAINT FK_DF7DE07166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_join_user ADD CONSTRAINT FK_DF7DE07A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_join_group ADD CONSTRAINT FK_FC244C5A166D1F9C FOREIGN KEY (project_id) REFERENCES project (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE project_join_group ADD CONSTRAINT FK_FC244C5AFE54D947 FOREIGN KEY (group_id) REFERENCES user_group (id) ON DELETE CASCADE');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
$this->addSql('ALTER TABLE project_item DROP FOREIGN KEY FK_268AED064ACC9A20');
$this->addSql('ALTER TABLE project_comment DROP FOREIGN KEY FK_26A5E09126F525E');
$this->addSql('ALTER TABLE project_participant DROP FOREIGN KEY FK_1F509CEA126F525E');
$this->addSql('ALTER TABLE project_card DROP FOREIGN KEY FK_2F8550CB166D1F9C');
$this->addSql('ALTER TABLE project_item DROP FOREIGN KEY FK_268AED06166D1F9C');
$this->addSql('ALTER TABLE project_join_user DROP FOREIGN KEY FK_DF7DE07166D1F9C');
$this->addSql('ALTER TABLE project_join_group DROP FOREIGN KEY FK_FC244C5A166D1F9C');
$this->addSql('ALTER TABLE project_item DROP FOREIGN KEY FK_268AED06BAD26311');
$this->addSql('DROP TABLE project_card');
$this->addSql('DROP TABLE project_comment');
$this->addSql('DROP TABLE project_item');
$this->addSql('DROP TABLE project_participant');
$this->addSql('DROP TABLE project');
$this->addSql('DROP TABLE project_join_user');
$this->addSql('DROP TABLE project_join_group');
$this->addSql('DROP TABLE project_tag');
}
}