<?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 Version20180812224330 extends AbstractMigration
{
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('RENAME TABLE pdf_forms TO config_pdf_form');
$this->addSql('ALTER TABLE config_pdf_form ENGINE = InnoDB');
$this->addSql('ALTER TABLE config_pdf_form CHARACTER SET = utf8mb4');
$this->addSql('
ALTER TABLE config_pdf_form
CHANGE name name VARCHAR(255) NOT NULL,
CHANGE filename file VARCHAR(255) NOT NULL,
CHANGE tab tab VARCHAR(255) DEFAULT NULL,
CHANGE signature_data signature_data LONGTEXT DEFAULT NULL,
CHANGE status enabled TINYINT(1) NOT NULL
');
$this->addSql('UPDATE config_pdf_form SET tab = \'sales\' WHERE tab = \'0\'');
$this->addSql('UPDATE config_pdf_form SET tab = \'service\' WHERE tab = \'1\'');
$this->addSql('ALTER TABLE config_pdf_form CHANGE tab tab ENUM(\'sales\', \'service\') DEFAULT NULL COMMENT \'(DC2Type:SectionTabType)\'');
$this->addSql('RENAME TABLE pdf_fields TO config_pdf_field');
$this->addSql('ALTER TABLE config_pdf_field ENGINE = InnoDB');
$this->addSql('ALTER TABLE config_pdf_field CHARACTER SET = utf8mb4');
$this->addSql('
ALTER TABLE config_pdf_field
CHANGE pdf_forms_id form_id INT DEFAULT NULL,
CHANGE file_field_org name VARCHAR(255) NOT NULL,
CHANGE file_field token VARCHAR(255) NOT NULL,
CHANGE mapped_field mapping LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:array)\'
');
$this->addSql('UPDATE config_pdf_field SET mapping = NULL WHERE mapping = \'\'');
$this->addSql('DROP INDEX idx_pdf_forms_id ON config_pdf_field');
$this->addSql('CREATE INDEX idx_name ON config_pdf_field (name)');
$this->addSql('CREATE INDEX IDX_ABB43FBF5FF69B7D ON config_pdf_field (form_id)');
$this->addSql('DELETE FROM config_pdf_field WHERE form_id NOT IN (SELECT id FROM config_pdf_form)');
$this->addSql('ALTER TABLE config_pdf_field ADD CONSTRAINT FK_5M64T7221Y6K9S5W FOREIGN KEY (form_id) REFERENCES config_pdf_form (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 config_pdf_field DROP FOREIGN KEY FK_5M64T7221Y6K9S5W');
$this->addSql('RENAME TABLE config_pdf_form TO pdf_forms');
$this->addSql('ALTER TABLE pdf_forms ENGINE = MyISAM');
$this->addSql('ALTER TABLE pdf_forms CHARACTER SET = latin1');
$this->addSql('UPDATE pdf_forms SET tab = \'0\' WHERE tab = \'sales\'');
$this->addSql('UPDATE pdf_forms SET tab = \'1\' WHERE tab = \'service\'');
$this->addSql('
ALTER TABLE pdf_forms
CHANGE name name VARCHAR(255) NOT NULL,
CHANGE file filename VARCHAR(255) NOT NULL,
CHANGE tab tab TINYINT(1) DEFAULT \'0\',
CHANGE signature_data signature_data TEXT DEFAULT NULL,
CHANGE enabled status TINYINT(1) DEFAULT \'1\'
');
$this->addSql('RENAME TABLE config_pdf_field TO pdf_fields');
$this->addSql('ALTER TABLE pdf_fields ENGINE = MyISAM');
$this->addSql('ALTER TABLE pdf_fields CHARACTER SET = latin1');
$this->addSql('
ALTER TABLE pdf_fields
CHANGE form_id pdf_forms_id INT NOT NULL,
CHANGE name file_field_org VARCHAR(255) DEFAULT NULL,
CHANGE token file_field VARCHAR(255) NOT NULL,
CHANGE mapping mapped_field LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:array)\'
');
$this->addSql('DROP INDEX idx_name ON pdf_fields');
$this->addSql('DROP INDEX IDX_ABB43FBF5FF69B7D ON pdf_fields');
$this->addSql('CREATE INDEX idx_pdf_forms_id ON pdf_fields (pdf_forms_id)');
}
}