migrations/Version20180812224330.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 Version20180812224330 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 pdf_forms TO config_pdf_form');
  16.         $this->addSql('ALTER TABLE config_pdf_form ENGINE = InnoDB');
  17.         $this->addSql('ALTER TABLE config_pdf_form CHARACTER SET = utf8mb4');
  18.         $this->addSql('
  19.             ALTER TABLE config_pdf_form
  20.                 CHANGE name name VARCHAR(255) NOT NULL,
  21.                 CHANGE filename file VARCHAR(255) NOT NULL,
  22.                 CHANGE tab tab VARCHAR(255) DEFAULT NULL,
  23.                 CHANGE signature_data signature_data LONGTEXT DEFAULT NULL,
  24.                 CHANGE status enabled TINYINT(1) NOT NULL
  25.         ');
  26.         $this->addSql('UPDATE config_pdf_form SET tab = \'sales\' WHERE tab = \'0\'');
  27.         $this->addSql('UPDATE config_pdf_form SET tab = \'service\' WHERE tab = \'1\'');
  28.         $this->addSql('ALTER TABLE config_pdf_form CHANGE tab tab ENUM(\'sales\', \'service\') DEFAULT NULL COMMENT \'(DC2Type:SectionTabType)\'');
  29.         $this->addSql('RENAME TABLE pdf_fields TO config_pdf_field');
  30.         $this->addSql('ALTER TABLE config_pdf_field ENGINE = InnoDB');
  31.         $this->addSql('ALTER TABLE config_pdf_field CHARACTER SET = utf8mb4');
  32.         $this->addSql('
  33.             ALTER TABLE config_pdf_field
  34.                 CHANGE pdf_forms_id form_id INT DEFAULT NULL,
  35.                 CHANGE file_field_org name VARCHAR(255) NOT NULL,
  36.                 CHANGE file_field token VARCHAR(255) NOT NULL,
  37.                 CHANGE mapped_field mapping LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:array)\'
  38.         ');
  39.         $this->addSql('UPDATE config_pdf_field SET mapping = NULL WHERE mapping = \'\'');
  40.         $this->addSql('DROP INDEX idx_pdf_forms_id ON config_pdf_field');
  41.         $this->addSql('CREATE INDEX idx_name ON config_pdf_field (name)');
  42.         $this->addSql('CREATE INDEX IDX_ABB43FBF5FF69B7D ON config_pdf_field (form_id)');
  43.         $this->addSql('DELETE FROM config_pdf_field WHERE form_id NOT IN (SELECT id FROM config_pdf_form)');
  44.         $this->addSql('ALTER TABLE config_pdf_field ADD CONSTRAINT FK_5M64T7221Y6K9S5W FOREIGN KEY (form_id) REFERENCES config_pdf_form (id) ON DELETE CASCADE');
  45.     }
  46.     public function down(Schema $schema): void
  47.     {
  48.         // this down() migration is auto-generated, please modify it to your needs
  49.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  50.         $this->addSql('ALTER TABLE config_pdf_field DROP FOREIGN KEY FK_5M64T7221Y6K9S5W');
  51.         $this->addSql('RENAME TABLE config_pdf_form TO pdf_forms');
  52.         $this->addSql('ALTER TABLE pdf_forms ENGINE = MyISAM');
  53.         $this->addSql('ALTER TABLE pdf_forms CHARACTER SET = latin1');
  54.         $this->addSql('UPDATE pdf_forms SET tab = \'0\' WHERE tab = \'sales\'');
  55.         $this->addSql('UPDATE pdf_forms SET tab = \'1\' WHERE tab = \'service\'');
  56.         $this->addSql('
  57.             ALTER TABLE pdf_forms
  58.                 CHANGE name name VARCHAR(255) NOT NULL,
  59.                 CHANGE file filename VARCHAR(255) NOT NULL,
  60.                 CHANGE tab tab TINYINT(1) DEFAULT \'0\',
  61.                 CHANGE signature_data signature_data TEXT DEFAULT NULL,
  62.                 CHANGE enabled status TINYINT(1) DEFAULT \'1\'
  63.         ');
  64.         $this->addSql('RENAME TABLE config_pdf_field TO pdf_fields');
  65.         $this->addSql('ALTER TABLE pdf_fields ENGINE = MyISAM');
  66.         $this->addSql('ALTER TABLE pdf_fields CHARACTER SET = latin1');
  67.         $this->addSql('
  68.             ALTER TABLE pdf_fields
  69.                 CHANGE form_id pdf_forms_id INT NOT NULL,
  70.                 CHANGE name file_field_org VARCHAR(255) DEFAULT NULL,
  71.                 CHANGE token file_field VARCHAR(255) NOT NULL,
  72.                 CHANGE mapping mapped_field LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:array)\'
  73.         ');
  74.         $this->addSql('DROP INDEX idx_name ON pdf_fields');
  75.         $this->addSql('DROP INDEX IDX_ABB43FBF5FF69B7D ON pdf_fields');
  76.         $this->addSql('CREATE INDEX idx_pdf_forms_id ON pdf_fields (pdf_forms_id)');
  77.     }
  78. }