src/Migrations/Version20201122160429.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Migrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. use Doctrine\Migrations\Exception\AbortMigration;
  7. /**
  8.  * Auto-generated Migration: Please modify to your needs!
  9.  */
  10. final class Version20201122160429 extends AbstractMigration
  11. {
  12.     public function getDescription() : string
  13.     {
  14.         return '';
  15.     }
  16.     public function up(Schema $schema) : void
  17.     {
  18.         $dbDriver $this->connection->getDatabasePlatform()->getName();
  19.         if ($dbDriver === 'mysql') {
  20.             $this->addSql('CREATE TABLE common (id VARCHAR(36) NOT NULL, name VARCHAR(100) NOT NULL, type VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  21.             $this->addSql('CREATE TABLE history (id VARCHAR(36) NOT NULL, user VARCHAR(36) NOT NULL, entity VARCHAR(36) NOT NULL, date DATETIME NOT NULL, action VARCHAR(100) NOT NULL, INDEX IDX_27BA704B8D93D649 (user), INDEX IDX_27BA704BE284468 (entity), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  22.             $this->addSql('CREATE TABLE user (id VARCHAR(36) NOT NULL, username VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, civility VARCHAR(30) DEFAULT NULL, firstname VARCHAR(100) DEFAULT NULL, lastname VARCHAR(100) DEFAULT NULL, password LONGTEXT DEFAULT NULL, salt LONGTEXT DEFAULT NULL, roles LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  23.             $this->addSql('CREATE TABLE user_personal_infos (id VARCHAR(36) NOT NULL, user VARCHAR(36) NOT NULL, phone_number VARCHAR(35) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_DD161B228D93D649 (user), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  24.             $this->addSql('CREATE TABLE validation_token (id VARCHAR(36) NOT NULL, user_id VARCHAR(36) DEFAULT NULL, token VARCHAR(100) NOT NULL, property VARCHAR(20) NOT NULL, value VARCHAR(255) DEFAULT NULL, send_mode VARCHAR(20) NOT NULL, creation DATETIME NOT NULL, expiration DATETIME NOT NULL, INDEX IDX_B724A428A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  25.             $this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704B8D93D649 FOREIGN KEY (user) REFERENCES user (id)');
  26.             $this->addSql('ALTER TABLE history ADD CONSTRAINT FK_27BA704BE284468 FOREIGN KEY (entity) REFERENCES common (id)');
  27.             $this->addSql('ALTER TABLE user ADD CONSTRAINT FK_8D93D649BF396750 FOREIGN KEY (id) REFERENCES common (id) ON DELETE CASCADE');
  28.             $this->addSql('ALTER TABLE user_personal_infos ADD CONSTRAINT FK_DD161B228D93D649 FOREIGN KEY (user) REFERENCES user (id)');
  29.             $this->addSql('ALTER TABLE user_personal_infos ADD CONSTRAINT FK_DD161B22BF396750 FOREIGN KEY (id) REFERENCES common (id) ON DELETE CASCADE');
  30.             $this->addSql('ALTER TABLE validation_token ADD CONSTRAINT FK_B724A428A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)');
  31.         } elseif ($dbDriver === 'sqlite') {
  32.             $this->addSql('CREATE TABLE common (id VARCHAR(36) NOT NULL, name VARCHAR(100) NOT NULL, type VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
  33.             $this->addSql('CREATE TABLE history (id VARCHAR(36) NOT NULL, user VARCHAR(36) NOT NULL, entity VARCHAR(36) NOT NULL, date DATETIME NOT NULL, "action" VARCHAR(100) NOT NULL, PRIMARY KEY(id))');
  34.             $this->addSql('CREATE INDEX IDX_27BA704B8D93D649 ON history (user)');
  35.             $this->addSql('CREATE INDEX IDX_27BA704BE284468 ON history (entity)');
  36.             $this->addSql('CREATE TABLE user (id VARCHAR(36) NOT NULL, username VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, civility VARCHAR(30) DEFAULT NULL, firstname VARCHAR(100) DEFAULT NULL, lastname VARCHAR(100) DEFAULT NULL, password CLOB DEFAULT NULL, salt CLOB DEFAULT NULL, roles CLOB NOT NULL --(DC2Type:array)
  37.         , PRIMARY KEY(id))');
  38.             $this->addSql('CREATE TABLE user_personal_infos (id VARCHAR(36) NOT NULL, user VARCHAR(36) NOT NULL, phone_number VARCHAR(35) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
  39.             $this->addSql('CREATE UNIQUE INDEX UNIQ_DD161B228D93D649 ON user_personal_infos (user)');
  40.             $this->addSql('CREATE TABLE validation_token (id VARCHAR(36) NOT NULL, user_id VARCHAR(36) DEFAULT NULL, token VARCHAR(100) NOT NULL, property VARCHAR(20) NOT NULL, value VARCHAR(255) DEFAULT NULL, send_mode VARCHAR(20) NOT NULL, creation DATETIME NOT NULL, expiration DATETIME NOT NULL, PRIMARY KEY(id))');
  41.             $this->addSql('CREATE INDEX IDX_B724A428A76ED395 ON validation_token (user_id)');
  42.         } else {
  43.             throw new AbortMigration('Migration can only be executed safely on \'mysql\'.');
  44.         }
  45.     }
  46.     public function down(Schema $schema) : void
  47.     {
  48.         $dbDriver $this->connection->getDatabasePlatform()->getName();
  49.         if ($dbDriver === 'mysql') {
  50.             $this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704BE284468');
  51.             $this->addSql('ALTER TABLE user DROP FOREIGN KEY FK_8D93D649BF396750');
  52.             $this->addSql('ALTER TABLE user_personal_infos DROP FOREIGN KEY FK_DD161B22BF396750');
  53.             $this->addSql('ALTER TABLE history DROP FOREIGN KEY FK_27BA704B8D93D649');
  54.             $this->addSql('ALTER TABLE user_personal_infos DROP FOREIGN KEY FK_DD161B228D93D649');
  55.             $this->addSql('ALTER TABLE validation_token DROP FOREIGN KEY FK_B724A428A76ED395');
  56.             $this->addSql('DROP TABLE common');
  57.             $this->addSql('DROP TABLE history');
  58.             $this->addSql('DROP TABLE user');
  59.             $this->addSql('DROP TABLE user_personal_infos');
  60.             $this->addSql('DROP TABLE validation_token');
  61.         } elseif ($dbDriver === 'sqlite') {
  62.             $this->addSql('DROP TABLE common');
  63.             $this->addSql('DROP TABLE history');
  64.             $this->addSql('DROP TABLE user');
  65.             $this->addSql('DROP TABLE user_personal_infos');
  66.             $this->addSql('DROP TABLE validation_token');
  67.         }
  68.     }
  69. }