migrations/Version20180821162559.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20180821162559 extends AbstractMigration
  10. {
  11.     public function up(Schema $schema): void
  12.     {
  13.         // this up() migration is auto-generated, please modify it to your needs
  14.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  15.         $this->addSql('RENAME TABLE documents_log TO customer_document_log');
  16.         $this->addSql('ALTER TABLE customer_document_log ENGINE = InnoDB');
  17.         $this->addSql('ALTER TABLE customer_document_log CHARACTER SET = utf8mb4');
  18.         $this->addSql('
  19.             ALTER TABLE customer_document_log
  20.                 CHANGE customers_id customer_id INT DEFAULT NULL,
  21.                 CHANGE administrators_id user_id INT DEFAULT NULL,
  22.                 CHANGE documents_id document_id INT DEFAULT NULL,
  23.                 CHANGE request_id token VARCHAR(255) NOT NULL,
  24.                 CHANGE sent_via sent_via VARCHAR(255) DEFAULT NULL,
  25.                 CHANGE date_added created_at DATETIME NOT NULL
  26.         ');
  27.         $this->addSql('UPDATE customer_document_log SET sent_via = \'email\' WHERE sent_via = \'Email\'');
  28.         $this->addSql('UPDATE customer_document_log SET sent_via = \'text\' WHERE sent_via = \'Text\'');
  29.         $this->addSql('ALTER TABLE customer_document_log CHANGE sent_via sent_via ENUM(\'email\', \'text\') DEFAULT NULL COMMENT \'(DC2Type:SentViaType)\'');
  30.         $this->addSql('DROP INDEX idx_customers_id ON customer_document_log');
  31.         $this->addSql('DROP INDEX idx_administrators_id ON customer_document_log');
  32.         $this->addSql('DROP INDEX idx_documents ON customer_document_log');
  33.         $this->addSql('CREATE INDEX IDX_524D59389395C3F3 ON customer_document_log (customer_id)');
  34.         $this->addSql('CREATE INDEX IDX_524D5938A76ED395 ON customer_document_log (user_id)');
  35.         $this->addSql('CREATE INDEX IDX_524D5938C33F7837 ON customer_document_log (document_id)');
  36.         $this->addSql('CREATE INDEX idx_token ON customer_document_log (token)');
  37.         $this->addSql('DELETE FROM customer_document_log WHERE customer_id NOT IN (SELECT id FROM customer)');
  38.         $this->addSql('UPDATE customer_document_log SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
  39.         $this->addSql('DELETE FROM customer_document_log WHERE document_id NOT IN (SELECT id FROM config_document)');
  40.         $this->addSql('ALTER TABLE customer_document_log ADD CONSTRAINT FK_524D59389395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
  41.         $this->addSql('ALTER TABLE customer_document_log ADD CONSTRAINT FK_524D5938A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
  42.         $this->addSql('ALTER TABLE customer_document_log ADD CONSTRAINT FK_524D5938C33F7837 FOREIGN KEY (document_id) REFERENCES config_document (id) ON DELETE CASCADE');
  43.     }
  44.     public function down(Schema $schema): void
  45.     {
  46.         // this down() migration is auto-generated, please modify it to your needs
  47.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  48.         $this->addSql('ALTER TABLE customer_document_log DROP FOREIGN KEY FK_524D5938C33F7837');
  49.         $this->addSql('ALTER TABLE customer_document_log DROP FOREIGN KEY FK_524D5938A76ED395');
  50.         $this->addSql('ALTER TABLE customer_document_log DROP FOREIGN KEY FK_524D59389395C3F3');
  51.         $this->addSql('RENAME TABLE customer_document_log TO documents_log');
  52.         $this->addSql('ALTER TABLE documents_log ENGINE = InnoDB');
  53.         $this->addSql('ALTER TABLE documents_log CHARACTER SET = utf8mb4');
  54.         $this->addSql('
  55.             ALTER TABLE documents_log
  56.                 CHANGE customer_id customers_id INT NOT NULL,
  57.                 CHANGE user_id administrators_id INT NOT NULL,
  58.                 CHANGE document_id documents_id INT NOT NULL,
  59.                 CHANGE token request_id VARCHAR(32) NOT NULL DEFAULT \'\',
  60.                 CHANGE sent_via sent_via VARCHAR(255) DEFAULT NULL,
  61.                 CHANGE created_at date_added DATETIME DEFAULT NULL
  62.         ');
  63.         $this->addSql('UPDATE documents_log SET sent_via = \'Email\' WHERE sent_via = \'email\'');
  64.         $this->addSql('UPDATE documents_log SET sent_via = \'Text\' WHERE sent_via = \'text\'');
  65.         $this->addSql('ALTER TABLE documents_log CHANGE sent_via sent_via ENUM(\'Email\', \'Text\') DEFAULT \'Email\'');
  66.         $this->addSql('DROP INDEX IDX_524D59389395C3F3 ON documents_log');
  67.         $this->addSql('DROP INDEX IDX_524D5938A76ED395 ON documents_log');
  68.         $this->addSql('DROP INDEX IDX_524D5938C33F7837 ON documents_log');
  69.         $this->addSql('DROP INDEX idx_token ON documents_log');
  70.         $this->addSql('CREATE INDEX idx_documents ON documents_log (documents_id)');
  71.         $this->addSql('CREATE INDEX idx_administrators_id ON documents_log (administrators_id)');
  72.         $this->addSql('CREATE INDEX idx_customers_id ON documents_log (customers_id)');
  73.     }
  74. }