migrations/Version20180810175656.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 Version20180810175656 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('
  16.             CREATE TABLE config_level (
  17.                 id INT AUTO_INCREMENT NOT NULL,
  18.                 name VARCHAR(255) NOT NULL,
  19.                 color VARCHAR(6) DEFAULT NULL,
  20.                 sort_order INT DEFAULT NULL,
  21.                 INDEX idx_name (name),
  22.                 PRIMARY KEY(id)
  23.             ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB
  24.         ');
  25.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (7, \'Red\', \'ec6f67\', 1)');
  26.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (6, \'Copper\', \'d35320\', 2)');
  27.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (1, \'Bronze\', \'eb975b\', 3)');
  28.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (2, \'Silver\', \'d7dbdd\', 4)');
  29.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (3, \'Gold\', \'f1c345\', 5)');
  30.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (4, \'Platinum\', \'abb2b8\', 6)');
  31.         $this->addSql('INSERT INTO config_level (id, name, color, sort_order) VALUES (5, \'Diamond\', \'29cc7c\', 7)');
  32.         $this->addSql('RENAME TABLE addresses TO config_address');
  33.         $this->addSql('ALTER TABLE config_address ENGINE = InnoDB');
  34.         $this->addSql('ALTER TABLE config_address CHARACTER SET = utf8mb4');
  35.         $this->addSql('UPDATE config_address SET flag_address = 0 WHERE flag_address IS NULL');
  36.         $this->addSql('UPDATE config_address SET flag_telephone = 0 WHERE flag_telephone IS NULL');
  37.         $this->addSql('UPDATE config_address SET flag_fax = 0 WHERE flag_fax IS NULL');
  38.         $this->addSql('
  39.             ALTER TABLE config_address
  40.                 DROP suburb,
  41.                 DROP country,
  42.                 CHANGE name name VARCHAR(255) NOT NULL,
  43.                 CHANGE street_address street VARCHAR(255) DEFAULT NULL,
  44.                 CHANGE city city VARCHAR(255) DEFAULT NULL,
  45.                 CHANGE postcode zip VARCHAR(255) DEFAULT NULL,
  46.                 CHANGE state state VARCHAR(255) DEFAULT NULL,
  47.                 CHANGE caf caf VARCHAR(255) DEFAULT NULL,
  48.                 CHANGE ptin ptin VARCHAR(255) DEFAULT NULL,
  49.                 CHANGE telephone phone_number VARCHAR(255) DEFAULT NULL,
  50.                 CHANGE fax fax_number VARCHAR(255) DEFAULT NULL,
  51.                 CHANGE flag_address use_address TINYINT(1) NOT NULL,
  52.                 CHANGE flag_telephone use_phone_number TINYINT(1) NOT NULL,
  53.                 CHANGE flag_fax use_fax_number TINYINT(1) NOT NULL,
  54.                 CHANGE date_added created_at DATETIME NOT NULL,
  55.                 CHANGE last_modified modified_at DATETIME NOT NULL
  56.         ');
  57.         $this->addSql('CREATE INDEX idx_name ON config_address (name)');
  58.         $this->addSql('RENAME TABLE customers_complaints_outcomes TO config_complaint_outcome');
  59.         $this->addSql('ALTER TABLE config_complaint_outcome ENGINE = InnoDB');
  60.         $this->addSql('ALTER TABLE config_complaint_outcome CHARACTER SET = utf8mb4');
  61.         $this->addSql('ALTER TABLE config_complaint_outcome CHANGE name name VARCHAR(255) NOT NULL');
  62.         $this->addSql('RENAME TABLE customers_complaints_types TO config_complaint_type');
  63.         $this->addSql('ALTER TABLE config_complaint_type ENGINE = InnoDB');
  64.         $this->addSql('ALTER TABLE config_complaint_type CHARACTER SET = utf8mb4');
  65.         $this->addSql('ALTER TABLE config_complaint_type CHANGE name name VARCHAR(255) NOT NULL');
  66.         $this->addSql('RENAME TABLE debt_options TO config_debt_option');
  67.         $this->addSql('ALTER TABLE config_debt_option ENGINE = InnoDB');
  68.         $this->addSql('ALTER TABLE config_debt_option CHARACTER SET = utf8mb4');
  69.         $this->addSql('ALTER TABLE config_debt_option CHANGE name name VARCHAR(255) NOT NULL');
  70.         $this->addSql('RENAME TABLE documents TO config_document');
  71.         $this->addSql('ALTER TABLE config_document ENGINE = InnoDB');
  72.         $this->addSql('ALTER TABLE config_document CHARACTER SET = utf8mb4');
  73.         $this->addSql('UPDATE config_document SET status = 0 WHERE status IS NULL');
  74.         $this->addSql('UPDATE config_document SET collection = 0 WHERE collection IS NULL');
  75.         $this->addSql('
  76.             ALTER TABLE config_document
  77.                 CHANGE title name VARCHAR(255) NOT NULL,
  78.                 CHANGE body body LONGTEXT DEFAULT NULL,
  79.                 CHANGE header header LONGTEXT DEFAULT NULL,
  80.                 CHANGE footer footer LONGTEXT DEFAULT NULL,
  81.                 CHANGE type type VARCHAR(255) DEFAULT NULL,
  82.                 CHANGE tab tab VARCHAR(255) DEFAULT NULL,
  83.                 CHANGE status enabled TINYINT(1) NOT NULL,
  84.                 CHANGE collection collection TINYINT(1) NOT NULL,
  85.                 CHANGE date_added created_at DATETIME NOT NULL,
  86.                 CHANGE last_modified modified_at DATETIME NOT NULL
  87.         ');
  88.         $this->addSql('UPDATE config_document SET type = \'letter\' WHERE type = \'0\'');
  89.         $this->addSql('UPDATE config_document SET type = \'email\' WHERE type = \'1\'');
  90.         $this->addSql('UPDATE config_document SET type = \'group\' WHERE type = \'2\'');
  91.         $this->addSql('UPDATE config_document SET type = \'text\' WHERE type = \'3\'');
  92.         $this->addSql('UPDATE config_document SET tab = \'sales\' WHERE tab = \'0\'');
  93.         $this->addSql('UPDATE config_document SET tab = \'service\' WHERE tab = \'1\'');
  94.         $this->addSql('ALTER TABLE config_document CHANGE type type ENUM(\'letter\', \'email\', \'group\', \'text\') DEFAULT NULL COMMENT \'(DC2Type:DocumentType)\'');
  95.         $this->addSql('ALTER TABLE config_document CHANGE tab tab ENUM(\'sales\', \'service\') DEFAULT NULL COMMENT \'(DC2Type:SectionTabType)\'');
  96.         $this->addSql('DROP INDEX idx_title ON config_document');
  97.         $this->addSql('CREATE INDEX idx_name ON config_document (name)');
  98.         $this->addSql('RENAME TABLE fax_numbers TO config_fax_number');
  99.         $this->addSql('ALTER TABLE config_fax_number ENGINE = InnoDB');
  100.         $this->addSql('ALTER TABLE config_fax_number CHARACTER SET = utf8mb4');
  101.         $this->addSql('
  102.             ALTER TABLE config_fax_number
  103.                 CHANGE name name VARCHAR(255) NOT NULL,
  104.                 CHANGE number number VARCHAR(255) NOT NULL
  105.         ');
  106.         $this->addSql('RENAME TABLE folders TO config_folder');
  107.         $this->addSql('ALTER TABLE config_folder ENGINE = InnoDB');
  108.         $this->addSql('ALTER TABLE config_folder CHARACTER SET = utf8mb4');
  109.         $this->addSql('
  110.             ALTER TABLE config_folder
  111.                 CHANGE name name VARCHAR(255) NOT NULL,
  112.                 CHANGE type type VARCHAR(255) DEFAULT NULL
  113.         ');
  114.         $this->addSql('UPDATE config_folder SET type = \'file\' WHERE type = \'0\'');
  115.         $this->addSql('UPDATE config_folder SET type = \'message\' WHERE type = \'1\'');
  116.         $this->addSql('ALTER TABLE config_folder CHANGE type type ENUM(\'file\', \'message\') DEFAULT NULL COMMENT \'(DC2Type:FolderType)\'');
  117.         $this->addSql('RENAME TABLE processors TO config_processor');
  118.         $this->addSql('ALTER TABLE config_processor ENGINE = InnoDB');
  119.         $this->addSql('ALTER TABLE config_processor CHARACTER SET = utf8mb4');
  120.         $this->addSql('ALTER TABLE config_processor CHANGE name name VARCHAR(255) NOT NULL');
  121.         $this->addSql('RENAME TABLE products TO config_product');
  122.         $this->addSql('ALTER TABLE config_product ENGINE = InnoDB');
  123.         $this->addSql('ALTER TABLE config_product CHARACTER SET = utf8mb4');
  124.         $this->addSql('
  125.             ALTER TABLE config_product
  126.                 DROP description,
  127.                 DROP price,
  128.                 DROP date_added,
  129.                 DROP last_modified,
  130.                 ADD fault TINYINT(1) NOT NULL,
  131.                 CHANGE name name VARCHAR(255) NOT NULL
  132.         ');
  133.         $this->addSql('UPDATE config_product SET id = 1, fault = 1 WHERE id = 0');
  134.         $this->addSql('RENAME TABLE service_codes TO config_service_code');
  135.         $this->addSql('ALTER TABLE config_service_code ENGINE = InnoDB');
  136.         $this->addSql('ALTER TABLE config_service_code CHARACTER SET = utf8mb4');
  137.         $this->addSql('ALTER TABLE config_service_code CHANGE name name VARCHAR(255) NOT NULL');
  138.         $this->addSql('RENAME TABLE tax_issues TO config_tax_issue');
  139.         $this->addSql('ALTER TABLE config_tax_issue ENGINE = InnoDB');
  140.         $this->addSql('ALTER TABLE config_tax_issue CHARACTER SET = utf8mb4');
  141.         $this->addSql('ALTER TABLE config_tax_issue CHANGE name name VARCHAR(255) NOT NULL');
  142.         $this->addSql('
  143.             CREATE TABLE config_status_outcome (
  144.                 id INT AUTO_INCREMENT NOT NULL,
  145.                 name VARCHAR(255) NOT NULL,
  146.                 INDEX idx_name (name),
  147.                 PRIMARY KEY(id)
  148.             ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB
  149.         ');
  150.         $this->addSql('INSERT INTO config_status_outcome (id, name) VALUES (1, \'PP Accepted\')');
  151.         $this->addSql('INSERT INTO config_status_outcome (id, name) VALUES (2, \'Offer Accepted\')');
  152.         $this->addSql('INSERT INTO config_status_outcome (id, name) VALUES (3, \'CNC Accepted\')');
  153.         $this->addSql('INSERT INTO config_status_outcome (id, name) VALUES (4, \'Penalty Abate Accepted\')');
  154.         $this->addSql('INSERT INTO config_status_outcome (id, name) VALUES (5, \'Filed Returns\')');
  155.         $this->addSql('INSERT INTO config_status_outcome (id, name) VALUES (6, \'Other\')');
  156.     }
  157.     public function down(Schema $schema): void
  158.     {
  159.         // this down() migration is auto-generated, please modify it to your needs
  160.         $this->abortIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\'.');
  161.         $this->addSql('DROP TABLE config_level');
  162.         $this->addSql('DROP TABLE config_status_outcome');
  163.         $this->addSql('RENAME TABLE config_address TO addresses');
  164.         $this->addSql('ALTER TABLE addresses ENGINE = MyISAM');
  165.         $this->addSql('ALTER TABLE addresses CHARACTER SET = latin1');
  166.         $this->addSql('
  167.             ALTER TABLE addresses
  168.                 ADD suburb VARCHAR(32) DEFAULT NULL AFTER street_address,
  169.                 ADD country VARCHAR(32) DEFAULT NULL AFTER state,
  170.                 CHANGE name name VARCHAR(64) DEFAULT \'\',
  171.                 CHANGE street street_address VARCHAR(64) DEFAULT NULL,
  172.                 CHANGE city city VARCHAR(32) DEFAULT NULL,
  173.                 CHANGE zip postcode VARCHAR(10) DEFAULT NULL,
  174.                 CHANGE state state VARCHAR(32) DEFAULT NULL,
  175.                 CHANGE caf caf VARCHAR(32) DEFAULT NULL,
  176.                 CHANGE ptin ptin VARCHAR(32) DEFAULT NULL,
  177.                 CHANGE phone_number telephone VARCHAR(32) DEFAULT NULL,
  178.                 CHANGE fax_number fax VARCHAR(32) DEFAULT NULL,
  179.                 CHANGE use_address flag_address TINYINT(1) DEFAULT \'0\',
  180.                 CHANGE use_phone_number flag_telephone TINYINT(1) DEFAULT \'0\',
  181.                 CHANGE use_fax_number flag_fax TINYINT(1) DEFAULT \'0\',
  182.                 CHANGE created_at date_added DATETIME DEFAULT NULL,
  183.                 CHANGE modified_at last_modified DATETIME DEFAULT NULL
  184.         ');
  185.         $this->addSql('DROP INDEX idx_name ON addresses');
  186.         $this->addSql('RENAME TABLE config_complaint_outcome TO customers_complaints_outcomes');
  187.         $this->addSql('ALTER TABLE customers_complaints_outcomes ENGINE = MyISAM');
  188.         $this->addSql('ALTER TABLE customers_complaints_outcomes CHARACTER SET = latin1');
  189.         $this->addSql('ALTER TABLE customers_complaints_outcomes CHANGE name name VARCHAR(64) NOT NULL');
  190.         $this->addSql('RENAME TABLE config_complaint_type TO customers_complaints_types');
  191.         $this->addSql('ALTER TABLE customers_complaints_types ENGINE = MyISAM');
  192.         $this->addSql('ALTER TABLE customers_complaints_types CHARACTER SET = latin1');
  193.         $this->addSql('ALTER TABLE customers_complaints_types CHANGE name name VARCHAR(64) NOT NULL');
  194.         $this->addSql('RENAME TABLE config_debt_option TO debt_options');
  195.         $this->addSql('ALTER TABLE debt_options ENGINE = MyISAM');
  196.         $this->addSql('ALTER TABLE debt_options CHARACTER SET = latin1');
  197.         $this->addSql('ALTER TABLE debt_options CHANGE name name VARCHAR(64) NOT NULL');
  198.         $this->addSql('RENAME TABLE config_document TO documents');
  199.         $this->addSql('ALTER TABLE documents ENGINE = MyISAM');
  200.         $this->addSql('ALTER TABLE documents CHARACTER SET = latin1');
  201.         $this->addSql('UPDATE documents SET type = \'0\' WHERE type = \'letter\'');
  202.         $this->addSql('UPDATE documents SET type = \'1\' WHERE type = \'email\'');
  203.         $this->addSql('UPDATE documents SET type = \'2\' WHERE type = \'group\'');
  204.         $this->addSql('UPDATE documents SET type = \'3\' WHERE type = \'text\'');
  205.         $this->addSql('UPDATE documents SET tab = \'0\' WHERE tab = \'sales\'');
  206.         $this->addSql('UPDATE documents SET tab = \'1\' WHERE tab = \'service\'');
  207.         $this->addSql('
  208.             ALTER TABLE documents
  209.                 CHANGE name title VARCHAR(255) DEFAULT NULL,
  210.                 CHANGE body body LONGTEXT DEFAULT NULL,
  211.                 CHANGE header header LONGTEXT DEFAULT NULL,
  212.                 CHANGE footer footer LONGTEXT DEFAULT NULL,
  213.                 CHANGE type type TINYINT(1) DEFAULT \'0\',
  214.                 CHANGE tab tab TINYINT(1) DEFAULT \'0\',
  215.                 CHANGE enabled status TINYINT(1) DEFAULT \'0\',
  216.                 CHANGE collection collection TINYINT(1) DEFAULT \'0\',
  217.                 CHANGE created_at date_added DATETIME DEFAULT NULL,
  218.                 CHANGE modified_at last_modified DATETIME DEFAULT NULL'
  219.         );
  220.         $this->addSql('DROP INDEX idx_name ON documents');
  221.         $this->addSql('CREATE INDEX idx_title ON documents (title)');
  222.         $this->addSql('RENAME TABLE config_fax_number TO fax_numbers');
  223.         $this->addSql('ALTER TABLE fax_numbers ENGINE = MyISAM');
  224.         $this->addSql('ALTER TABLE fax_numbers CHARACTER SET = latin1');
  225.         $this->addSql('
  226.             ALTER TABLE fax_numbers
  227.                 CHANGE name name VARCHAR(64) NOT NULL,
  228.                 CHANGE number number VARCHAR(32) NOT NULL
  229.         ');
  230.         $this->addSql('RENAME TABLE config_folder TO folders');
  231.         $this->addSql('ALTER TABLE folders ENGINE = MyISAM');
  232.         $this->addSql('ALTER TABLE folders CHARACTER SET = latin1');
  233.         $this->addSql('UPDATE folders SET type = \'0\' WHERE type = \'file\'');
  234.         $this->addSql('UPDATE folders SET type = \'1\' WHERE type = \'message\'');
  235.         $this->addSql('
  236.             ALTER TABLE folders
  237.                 CHANGE name name VARCHAR(64) NOT NULL,
  238.                 CHANGE type type TINYINT(1) DEFAULT \'0\'
  239.         ');
  240.         $this->addSql('RENAME TABLE config_processor TO processors');
  241.         $this->addSql('ALTER TABLE processors ENGINE = MyISAM');
  242.         $this->addSql('ALTER TABLE processors CHARACTER SET = latin1');
  243.         $this->addSql('ALTER TABLE processors CHANGE name name VARCHAR(64) NOT NULL');
  244.         $this->addSql('RENAME TABLE config_product TO products');
  245.         $this->addSql('ALTER TABLE products ENGINE = MyISAM');
  246.         $this->addSql('ALTER TABLE products CHARACTER SET = latin1');
  247.         $this->addSql('
  248.             ALTER TABLE products
  249.                 DROP fault,
  250.                 ADD description TEXT DEFAULT NULL,
  251.                 ADD price NUMERIC(15, 2) DEFAULT \'0.00\',
  252.                 ADD date_added DATETIME DEFAULT NULL,
  253.                 ADD last_modified DATETIME DEFAULT NULL,
  254.                 CHANGE name name VARCHAR(64) NOT NULL DEFAULT \'\'
  255.         ');
  256.         $this->addSql('RENAME TABLE config_service_code TO service_codes');
  257.         $this->addSql('ALTER TABLE service_codes ENGINE = MyISAM');
  258.         $this->addSql('ALTER TABLE service_codes CHARACTER SET = latin1');
  259.         $this->addSql('ALTER TABLE service_codes CHANGE name name VARCHAR(64) NOT NULL');
  260.         $this->addSql('RENAME TABLE config_tax_issue TO tax_issues');
  261.         $this->addSql('ALTER TABLE tax_issues ENGINE = MyISAM');
  262.         $this->addSql('ALTER TABLE tax_issues CHARACTER SET = latin1');
  263.         $this->addSql('ALTER TABLE tax_issues CHANGE name name VARCHAR(64) NOT NULL');
  264.     }
  265. }