<?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 Version20180819183715 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 customers_fax_log TO customer_fax_log');
$this->addSql('ALTER TABLE customer_fax_log ENGINE = InnoDB');
$this->addSql('ALTER TABLE customer_fax_log CHARACTER SET = utf8mb4');
$this->addSql('UPDATE customer_fax_log SET status = 0 WHERE status IS NULL');
$this->addSql('
ALTER TABLE customer_fax_log
CHANGE customers_id customer_id INT DEFAULT NULL,
CHANGE administrators_id user_id INT DEFAULT NULL,
CHANGE file file VARCHAR(255) NOT NULL,
CHANGE fax_number fax_number VARCHAR(255) NOT NULL,
CHANGE fax_id fax_id VARCHAR(255) NOT NULL,
CHANGE status status INT DEFAULT NULL,
CHANGE date_added created_at DATETIME NOT NULL,
CHANGE last_modified modified_at DATETIME NOT NULL
');
$this->addSql('DROP INDEX idx_customers_id ON customer_fax_log');
$this->addSql('DROP INDEX idx_administrators_id ON customer_fax_log');
$this->addSql('DROP INDEX idx_fax_number ON customer_fax_log');
$this->addSql('DROP INDEX idx_fax_id ON customer_fax_log');
$this->addSql('CREATE INDEX IDX_80CDDBCD9395C3F3 ON customer_fax_log (customer_id)');
$this->addSql('CREATE INDEX IDX_80CDDBCDA76ED395 ON customer_fax_log (user_id)');
$this->addSql('CREATE INDEX idx_fax_number ON customer_fax_log (fax_number)');
$this->addSql('CREATE INDEX idx_fax_id ON customer_fax_log (fax_id)');
$this->addSql('RENAME TABLE customers_fields TO customer_field');
$this->addSql('ALTER TABLE customer_field ENGINE = InnoDB');
$this->addSql('ALTER TABLE customer_field CHARACTER SET = utf8mb4');
$this->addSql('
ALTER TABLE customer_field
ADD created_at DATETIME DEFAULT NULL,
ADD modified_at DATETIME DEFAULT NULL
');
$this->addSql('UPDATE customer_field cf SET cf.created_at = (SELECT c.created_at FROM customer c WHERE c.id = cf.customers_id)');
$this->addSql('UPDATE customer_field SET modified_at = created_at');
$this->addSql('
ALTER TABLE customer_field
ADD pdf_field_id INT DEFAULT NULL,
CHANGE customers_id customer_id INT DEFAULT NULL,
CHANGE keyword token VARCHAR(255) NOT NULL,
CHANGE value value VARCHAR(255) DEFAULT NULL,
CHANGE created_at created_at DATETIME NOT NULL,
CHANGE modified_at modified_at DATETIME NOT NULL
');
$this->addSql('UPDATE customer_field cf SET cf.pdf_field_id = (SELECT cpf.id FROM config_pdf_field cpf WHERE cpf.token = cf.token)');
$this->addSql('DELETE FROM customer_field WHERE token = \'pqa__signature\' OR token = \'bqa__signature\'');
$this->addSql('DROP INDEX idx_customers_id ON customer_field');
$this->addSql('DROP INDEX idx_keyword ON customer_field');
$this->addSql('CREATE INDEX IDX_95C030639395C3F3 ON customer_field (customer_id)');
$this->addSql('CREATE INDEX IDX_95C03063EF958068 ON customer_field (pdf_field_id)');
$this->addSql('CREATE INDEX idx_token ON customer_field (token)');
$this->addSql('RENAME TABLE customers_letters TO customer_letter');
$this->addSql('ALTER TABLE customer_letter ENGINE = InnoDB');
$this->addSql('ALTER TABLE customer_letter CHARACTER SET = utf8mb4');
$this->addSql('
ALTER TABLE customer_letter
CHANGE customers_id customer_id INT DEFAULT NULL,
CHANGE administrators_id user_id INT DEFAULT NULL,
CHANGE documents_id document_id INT DEFAULT NULL,
CHANGE title name VARCHAR(255) NOT NULL,
CHANGE body body LONGTEXT DEFAULT NULL,
CHANGE date_added created_at DATETIME NOT NULL,
CHANGE last_modified modified_at DATETIME NOT NULL
');
$this->addSql('DROP INDEX idx_customers_id ON customer_letter');
$this->addSql('DROP INDEX idx_administrators_id ON customer_letter');
$this->addSql('DROP INDEX idx_documents_id ON customer_letter');
$this->addSql('CREATE INDEX IDX_3FC7325B9395C3F3 ON customer_letter (customer_id)');
$this->addSql('CREATE INDEX IDX_3FC7325BA76ED395 ON customer_letter (user_id)');
$this->addSql('CREATE INDEX IDX_3FC7325BC33F7837 ON customer_letter (document_id)');
$this->addSql('CREATE INDEX idx_name ON customer_letter (name)');
$this->addSql('DELETE FROM customer_fax_log WHERE customer_id NOT IN (SELECT id FROM customer)');
$this->addSql('UPDATE customer_fax_log SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
$this->addSql('DELETE FROM customer_field WHERE customer_id NOT IN (SELECT id FROM customer)');
$this->addSql('DELETE FROM customer_field WHERE pdf_field_id NOT IN (SELECT id FROM config_pdf_field)');
$this->addSql('DELETE FROM customer_letter WHERE customer_id NOT IN (SELECT id FROM customer)');
$this->addSql('UPDATE customer_letter SET user_id = NULL WHERE user_id NOT IN (SELECT id FROM user)');
$this->addSql('UPDATE customer_letter SET document_id = NULL WHERE document_id NOT IN (SELECT id FROM config_document)');
$this->addSql('ALTER TABLE customer_fax_log ADD CONSTRAINT FK_80CDDBCD9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE customer_fax_log ADD CONSTRAINT FK_80CDDBCDA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE customer_field ADD CONSTRAINT FK_95C030639395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE customer_field ADD CONSTRAINT FK_95C03063EF958068 FOREIGN KEY (pdf_field_id) REFERENCES config_pdf_field (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE customer_letter ADD CONSTRAINT FK_3FC7325B9395C3F3 FOREIGN KEY (customer_id) REFERENCES customer (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE customer_letter ADD CONSTRAINT FK_3FC7325BA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE SET NULL');
$this->addSql('ALTER TABLE customer_letter ADD CONSTRAINT FK_3FC7325BC33F7837 FOREIGN KEY (document_id) REFERENCES config_document (id) ON DELETE SET NULL');
}
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 customer_letter DROP FOREIGN KEY FK_3FC7325BC33F7837');
$this->addSql('ALTER TABLE customer_letter DROP FOREIGN KEY FK_3FC7325BA76ED395');
$this->addSql('ALTER TABLE customer_letter DROP FOREIGN KEY FK_3FC7325B9395C3F3');
$this->addSql('ALTER TABLE customer_field DROP FOREIGN KEY FK_95C03063EF958068');
$this->addSql('ALTER TABLE customer_field DROP FOREIGN KEY FK_95C030639395C3F3');
$this->addSql('ALTER TABLE customer_fax_log DROP FOREIGN KEY FK_80CDDBCDA76ED395');
$this->addSql('ALTER TABLE customer_fax_log DROP FOREIGN KEY FK_80CDDBCD9395C3F3');
$this->addSql('RENAME TABLE customer_fax_log TO customers_fax_log');
$this->addSql('ALTER TABLE customers_fax_log ENGINE = MyISAM');
$this->addSql('ALTER TABLE customers_fax_log CHARACTER SET = latin1');
$this->addSql('
ALTER TABLE customers_fax_log
CHANGE customer_id customers_id INT NOT NULL,
CHANGE user_id administrators_id INT NOT NULL,
CHANGE file file VARCHAR(255) NOT NULL,
CHANGE fax_number fax_number VARCHAR(32) NOT NULL,
CHANGE fax_id fax_id VARCHAR(64) NOT NULL,
CHANGE status status INT NOT NULL,
CHANGE created_at date_added DATETIME DEFAULT NULL,
CHANGE modified_at last_modified DATETIME DEFAULT NULL
');
$this->addSql('DROP INDEX IDX_80CDDBCD9395C3F3 ON customers_fax_log');
$this->addSql('DROP INDEX IDX_80CDDBCDA76ED395 ON customers_fax_log');
$this->addSql('DROP INDEX idx_fax_number ON customers_fax_log');
$this->addSql('DROP INDEX idx_fax_id ON customers_fax_log');
$this->addSql('CREATE INDEX idx_customers_id ON customers_fax_log (customers_id)');
$this->addSql('CREATE INDEX idx_administrators_id ON customers_fax_log (administrators_id)');
$this->addSql('CREATE INDEX idx_fax_number ON customers_fax_log (fax_number)');
$this->addSql('CREATE INDEX idx_fax_id ON customers_fax_log (fax_id)');
$this->addSql('RENAME TABLE customer_field TO customers_fields');
$this->addSql('ALTER TABLE customers_fields ENGINE = MyISAM');
$this->addSql('ALTER TABLE customers_fields CHARACTER SET = latin1');
$this->addSql('
ALTER TABLE customers_fields
DROP pdf_field_id,
DROP created_at,
DROP modified_at,
CHANGE customer_id customers_id INT NOT NULL,
CHANGE token keyword VARCHAR(64) NOT NULL,
CHANGE value value VARCHAR(255) NOT NULL
');
$this->addSql('DROP INDEX IDX_95C030639395C3F3 ON customers_fields');
$this->addSql('DROP INDEX idx_token ON customers_fields');
$this->addSql('CREATE INDEX idx_customers_id ON customers_fields (customers_id)');
$this->addSql('CREATE INDEX idx_keyword ON customers_fields (keyword)');
$this->addSql('RENAME TABLE customer_letter TO customers_letters');
$this->addSql('ALTER TABLE customers_letters ENGINE = InnoDB');
$this->addSql('ALTER TABLE customers_letters CHARACTER SET = utf8mb4');
$this->addSql('
ALTER TABLE customers_letters
CHANGE customer_id customers_id INT NOT NULL,
CHANGE user_id administrators_id INT NOT NULL,
CHANGE document_id documents_id INT DEFAULT NULL,
CHANGE name title VARCHAR(255) DEFAULT NULL,
CHANGE body body LONGTEXT DEFAULT NULL,
CHANGE created_at date_added DATETIME DEFAULT NULL,
CHANGE modified_at last_modified DATETIME DEFAULT NULL
');
$this->addSql('DROP INDEX IDX_3FC7325B9395C3F3 ON customers_letters');
$this->addSql('DROP INDEX IDX_3FC7325BA76ED395 ON customers_letters');
$this->addSql('DROP INDEX IDX_3FC7325BC33F7837 ON customers_letters');
$this->addSql('DROP INDEX idx_name ON customers_letters');
$this->addSql('CREATE INDEX idx_customers_id ON customers_letters (customers_id)');
$this->addSql('CREATE INDEX idx_administrators_id ON customers_letters (administrators_id)');
$this->addSql('CREATE INDEX idx_documents_id ON customers_letters (documents_id)');
}
}