migrations/Version20180819183715.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 Version20180819183715 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 customers_fax_log TO customer_fax_log');
  16.         $this->addSql('ALTER TABLE customer_fax_log ENGINE = InnoDB');
  17.         $this->addSql('ALTER TABLE customer_fax_log CHARACTER SET = utf8mb4');
  18.         $this->addSql('UPDATE customer_fax_log SET status = 0 WHERE status IS NULL');
  19.         $this->addSql('
  20.             ALTER TABLE customer_fax_log
  21.                 CHANGE customers_id customer_id INT DEFAULT NULL,
  22.                 CHANGE administrators_id user_id INT DEFAULT NULL,
  23.                 CHANGE file file VARCHAR(255) NOT NULL,
  24.                 CHANGE fax_number fax_number VARCHAR(255) NOT NULL,
  25.                 CHANGE fax_id fax_id VARCHAR(255) NOT NULL,
  26.                 CHANGE status status INT DEFAULT NULL,
  27.                 CHANGE date_added created_at DATETIME NOT NULL,
  28.                 CHANGE last_modified modified_at DATETIME NOT NULL
  29.         ');
  30.         $this->addSql('DROP INDEX idx_customers_id ON customer_fax_log');
  31.         $this->addSql('DROP INDEX idx_administrators_id ON customer_fax_log');
  32.         $this->addSql('DROP INDEX idx_fax_number ON customer_fax_log');
  33.         $this->addSql('DROP INDEX idx_fax_id ON customer_fax_log');
  34.         $this->addSql('CREATE INDEX IDX_80CDDBCD9395C3F3 ON customer_fax_log (customer_id)');
  35.         $this->addSql('CREATE INDEX IDX_80CDDBCDA76ED395 ON customer_fax_log (user_id)');
  36.         $this->addSql('CREATE INDEX idx_fax_number ON customer_fax_log (fax_number)');
  37.         $this->addSql('CREATE INDEX idx_fax_id ON customer_fax_log (fax_id)');
  38.         $this->addSql('RENAME TABLE customers_fields TO customer_field');
  39.         $this->addSql('ALTER TABLE customer_field ENGINE = InnoDB');
  40.         $this->addSql('ALTER TABLE customer_field CHARACTER SET = utf8mb4');
  41.         $this->addSql('
  42.             ALTER TABLE customer_field
  43.                 ADD created_at DATETIME DEFAULT NULL,
  44.                 ADD modified_at DATETIME DEFAULT NULL
  45.         ');
  46.         $this->addSql('UPDATE customer_field cf SET cf.created_at = (SELECT c.created_at FROM customer c WHERE c.id = cf.customers_id)');
  47.         $this->addSql('UPDATE customer_field SET modified_at = created_at');
  48.         $this->addSql('
  49.             ALTER TABLE customer_field
  50.                 ADD pdf_field_id INT DEFAULT NULL,
  51.                 CHANGE customers_id customer_id INT DEFAULT NULL,
  52.                 CHANGE keyword token VARCHAR(255) NOT NULL,
  53.                 CHANGE value value VARCHAR(255) DEFAULT NULL,
  54.                 CHANGE created_at created_at DATETIME NOT NULL,
  55.                 CHANGE modified_at modified_at DATETIME NOT NULL
  56.         ');
  57.         $this->addSql('UPDATE customer_field cf SET cf.pdf_field_id = (SELECT cpf.id FROM config_pdf_field cpf WHERE cpf.token = cf.token)');
  58.         $this->addSql('DELETE FROM customer_field WHERE token = \'pqa__signature\' OR token = \'bqa__signature\'');
  59.         $this->addSql('DROP INDEX idx_customers_id ON customer_field');
  60.         $this->addSql('DROP INDEX idx_keyword ON customer_field');
  61.         $this->addSql('CREATE INDEX IDX_95C030639395C3F3 ON customer_field (customer_id)');
  62.         $this->addSql('CREATE INDEX IDX_95C03063EF958068 ON customer_field (pdf_field_id)');
  63.         $this->addSql('CREATE INDEX idx_token ON customer_field (token)');
  64.         $this->addSql('RENAME TABLE customers_letters TO customer_letter');
  65.         $this->addSql('ALTER TABLE customer_letter ENGINE = InnoDB');
  66.         $this->addSql('ALTER TABLE customer_letter CHARACTER SET = utf8mb4');
  67.         $this->addSql('
  68.             ALTER TABLE customer_letter
  69.                 CHANGE customers_id customer_id INT DEFAULT NULL,
  70.                 CHANGE administrators_id user_id INT DEFAULT NULL,
  71.                 CHANGE documents_id document_id INT DEFAULT NULL,
  72.                 CHANGE title name VARCHAR(255) NOT NULL,
  73.                 CHANGE body body LONGTEXT DEFAULT NULL,
  74.                 CHANGE date_added created_at DATETIME NOT NULL,
  75.                 CHANGE last_modified modified_at DATETIME NOT NULL
  76.         ');
  77.         $this->addSql('DROP INDEX idx_customers_id ON customer_letter');
  78.         $this->addSql('DROP INDEX idx_administrators_id ON customer_letter');
  79.         $this->addSql('DROP INDEX idx_documents_id ON customer_letter');
  80.         $this->addSql('CREATE INDEX IDX_3FC7325B9395C3F3 ON customer_letter (customer_id)');
  81.         $this->addSql('CREATE INDEX IDX_3FC7325BA76ED395 ON customer_letter (user_id)');
  82.         $this->addSql('CREATE INDEX IDX_3FC7325BC33F7837 ON customer_letter (document_id)');
  83.         $this->addSql('CREATE INDEX idx_name ON customer_letter (name)');
  84.         $this->addSql('DELETE FROM customer_fax_log WHERE customer_id NOT IN (SELECT id FROM customer)');
  85.         $this->addSql('UPDATE customer_fax_log SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
  86.         $this->addSql('DELETE FROM customer_field WHERE customer_id NOT IN (SELECT id FROM customer)');
  87.         $this->addSql('DELETE FROM customer_field WHERE pdf_field_id NOT IN (SELECT id FROM config_pdf_field)');
  88.         $this->addSql('DELETE FROM customer_letter WHERE customer_id NOT IN (SELECT id FROM customer)');
  89.         $this->addSql('UPDATE customer_letter SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
  90.         $this->addSql('UPDATE customer_letter SET document_id = NULL WHERE document_id NOT IN (SELECT id FROM config_document)');
  91.         $this->addSql('ALTER TABLE customer_fax_log ADD CONSTRAINT FK_80CDDBCD9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
  92.         $this->addSql('ALTER TABLE customer_fax_log ADD CONSTRAINT FK_80CDDBCDA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
  93.         $this->addSql('ALTER TABLE customer_field ADD CONSTRAINT FK_95C030639395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
  94.         $this->addSql('ALTER TABLE customer_field ADD CONSTRAINT FK_95C03063EF958068 FOREIGN KEY (pdf_field_id) REFERENCES config_pdf_field (id) ON DELETE CASCADE');
  95.         $this->addSql('ALTER TABLE customer_letter ADD CONSTRAINT FK_3FC7325B9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
  96.         $this->addSql('ALTER TABLE customer_letter ADD CONSTRAINT FK_3FC7325BA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
  97.         $this->addSql('ALTER TABLE customer_letter ADD CONSTRAINT FK_3FC7325BC33F7837 FOREIGN KEY (document_id) REFERENCES config_document (id) ON DELETE SET NULL');
  98.     }
  99.     public function down(Schema $schema): void
  100.     {
  101.         // this down() migration is auto-generated, please modify it to your needs
  102.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  103.         $this->addSql('ALTER TABLE customer_letter DROP FOREIGN KEY FK_3FC7325BC33F7837');
  104.         $this->addSql('ALTER TABLE customer_letter DROP FOREIGN KEY FK_3FC7325BA76ED395');
  105.         $this->addSql('ALTER TABLE customer_letter DROP FOREIGN KEY FK_3FC7325B9395C3F3');
  106.         $this->addSql('ALTER TABLE customer_field DROP FOREIGN KEY FK_95C03063EF958068');
  107.         $this->addSql('ALTER TABLE customer_field DROP FOREIGN KEY FK_95C030639395C3F3');
  108.         $this->addSql('ALTER TABLE customer_fax_log DROP FOREIGN KEY FK_80CDDBCDA76ED395');
  109.         $this->addSql('ALTER TABLE customer_fax_log DROP FOREIGN KEY FK_80CDDBCD9395C3F3');
  110.         $this->addSql('RENAME TABLE customer_fax_log TO customers_fax_log');
  111.         $this->addSql('ALTER TABLE customers_fax_log ENGINE = MyISAM');
  112.         $this->addSql('ALTER TABLE customers_fax_log CHARACTER SET = latin1');
  113.         $this->addSql('
  114.             ALTER TABLE customers_fax_log
  115.                 CHANGE customer_id customers_id INT NOT NULL,
  116.                 CHANGE user_id administrators_id INT NOT NULL,
  117.                 CHANGE file file VARCHAR(255) NOT NULL,
  118.                 CHANGE fax_number fax_number VARCHAR(32) NOT NULL,
  119.                 CHANGE fax_id fax_id VARCHAR(64) NOT NULL,
  120.                 CHANGE status status INT NOT NULL,
  121.                 CHANGE created_at date_added DATETIME DEFAULT NULL,
  122.                 CHANGE modified_at last_modified DATETIME DEFAULT NULL
  123.         ');
  124.         $this->addSql('DROP INDEX IDX_80CDDBCD9395C3F3 ON customers_fax_log');
  125.         $this->addSql('DROP INDEX IDX_80CDDBCDA76ED395 ON customers_fax_log');
  126.         $this->addSql('DROP INDEX idx_fax_number ON customers_fax_log');
  127.         $this->addSql('DROP INDEX idx_fax_id ON customers_fax_log');
  128.         $this->addSql('CREATE INDEX idx_customers_id ON customers_fax_log (customers_id)');
  129.         $this->addSql('CREATE INDEX idx_administrators_id ON customers_fax_log (administrators_id)');
  130.         $this->addSql('CREATE INDEX idx_fax_number ON customers_fax_log (fax_number)');
  131.         $this->addSql('CREATE INDEX idx_fax_id ON customers_fax_log (fax_id)');
  132.         $this->addSql('RENAME TABLE customer_field TO customers_fields');
  133.         $this->addSql('ALTER TABLE customers_fields ENGINE = MyISAM');
  134.         $this->addSql('ALTER TABLE customers_fields CHARACTER SET = latin1');
  135.         $this->addSql('
  136.             ALTER TABLE customers_fields
  137.                 DROP pdf_field_id,
  138.                 DROP created_at,
  139.                 DROP modified_at,
  140.                 CHANGE customer_id customers_id INT NOT NULL,
  141.                 CHANGE token keyword VARCHAR(64) NOT NULL,
  142.                 CHANGE value value VARCHAR(255) NOT NULL
  143.         ');
  144.         $this->addSql('DROP INDEX IDX_95C030639395C3F3 ON customers_fields');
  145.         $this->addSql('DROP INDEX idx_token ON customers_fields');
  146.         $this->addSql('CREATE INDEX idx_customers_id ON customers_fields (customers_id)');
  147.         $this->addSql('CREATE INDEX idx_keyword ON customers_fields (keyword)');
  148.         $this->addSql('RENAME TABLE customer_letter TO customers_letters');
  149.         $this->addSql('ALTER TABLE customers_letters ENGINE = InnoDB');
  150.         $this->addSql('ALTER TABLE customers_letters CHARACTER SET = utf8mb4');
  151.         $this->addSql('
  152.             ALTER TABLE customers_letters
  153.                 CHANGE customer_id customers_id INT NOT NULL,
  154.                 CHANGE user_id administrators_id INT NOT NULL,
  155.                 CHANGE document_id documents_id INT DEFAULT NULL,
  156.                 CHANGE name title VARCHAR(255) DEFAULT NULL,
  157.                 CHANGE body body LONGTEXT DEFAULT NULL,
  158.                 CHANGE created_at date_added DATETIME DEFAULT NULL,
  159.                 CHANGE modified_at last_modified DATETIME DEFAULT NULL
  160.         ');
  161.         $this->addSql('DROP INDEX IDX_3FC7325B9395C3F3 ON customers_letters');
  162.         $this->addSql('DROP INDEX IDX_3FC7325BA76ED395 ON customers_letters');
  163.         $this->addSql('DROP INDEX IDX_3FC7325BC33F7837 ON customers_letters');
  164.         $this->addSql('DROP INDEX idx_name ON customers_letters');
  165.         $this->addSql('CREATE INDEX idx_customers_id ON customers_letters (customers_id)');
  166.         $this->addSql('CREATE INDEX idx_administrators_id ON customers_letters (administrators_id)');
  167.         $this->addSql('CREATE INDEX idx_documents_id ON customers_letters (documents_id)');
  168.     }
  169. }