<?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 Version20180807171607 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('DROP TABLE sessions');
$this->addSql('DROP TABLE short_urls');
$this->addSql('DROP TABLE configuration');
$this->addSql('DROP TABLE configuration_group');
$this->addSql('DROP TABLE customers_levies');
$this->addSql('DROP TABLE customers_percents');
$this->addSql('DROP TABLE customers_payment_status');
$this->addSql('DROP TABLE credit_cards');
$this->addSql('DROP TABLE report_stage_stats');
}
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('
CREATE TABLE sessions (
sesskey VARCHAR(255) NOT NULL COLLATE latin1_swedish_ci,
expiry INT NOT NULL,
value TEXT NOT NULL COLLATE latin1_swedish_ci,
PRIMARY KEY(sesskey)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
$this->addSql('
CREATE TABLE short_urls (
id INT AUTO_INCREMENT NOT NULL,
long_url TEXT NOT NULL COLLATE latin1_swedish_ci,
short_code VARCHAR(7) NOT NULL COLLATE latin1_swedish_ci,
date_added DATETIME DEFAULT NULL,
INDEX idx_short_code (short_code),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
$this->addSql('
CREATE TABLE configuration (
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(64) NOT NULL COLLATE latin1_swedish_ci,
code VARCHAR(64) NOT NULL COLLATE latin1_swedish_ci,
value TEXT NOT NULL COLLATE latin1_swedish_ci,
description VARCHAR(255) NOT NULL COLLATE latin1_swedish_ci,
configuration_group_id INT NOT NULL,
sort_order INT DEFAULT NULL,
last_modified DATETIME DEFAULT NULL,
date_added DATETIME DEFAULT NULL,
use_function VARCHAR(255) DEFAULT NULL COLLATE latin1_swedish_ci,
set_function VARCHAR(255) DEFAULT NULL COLLATE latin1_swedish_ci,
INDEX idx_name (name),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
// @todo: backup table data
$this->addSql('
CREATE TABLE configuration_group (
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(64) NOT NULL COLLATE latin1_swedish_ci,
description VARCHAR(255) NOT NULL COLLATE latin1_swedish_ci,
sort_order INT DEFAULT NULL,
visible TINYINT(1) DEFAULT \'1\',
INDEX idx_name (name),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
$this->addSql('
INSERT INTO configuration_group (id, name, description, sort_order, visible)
VALUES
(1, \'My Site\', \'General information about my site\', 1, 1),
(2, \'Minimum Values\', \'The minimum values for functions / data\', 2, 1),
(3, \'Maximum Values\', \'The maximum values for functions / data\', 3, 1),
(6, \'Payment Modules\', \'Hidden from configuration\', 6, 0),
(17, \'Credit Cards\', \'Credit card options\', 17, 1),
(18, \'Program Locations\', \'Locations to certain programs on the server.\', 18, 1),
(4, \'Default Values\', \'Hidden from configuration\', 4, 0),
(5, \'System Accounts\', \'Hidden from configuration\', 5, 0)
');
$this->addSql('
CREATE TABLE customers_levies (
id INT AUTO_INCREMENT NOT NULL,
customers_id INT DEFAULT NULL,
type VARCHAR(255) DEFAULT \'IRS\' COLLATE latin1_swedish_ci,
revenue_officer VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
address VARCHAR(255) DEFAULT NULL COLLATE latin1_swedish_ci,
phone VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
fax VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
employer_name VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
employer_contact VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
employer_phone VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
employer_fax VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
bank_name VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
bank_contact VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
bank_phone VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
bank_fax VARCHAR(32) DEFAULT NULL COLLATE latin1_swedish_ci,
notes TEXT DEFAULT NULL COLLATE latin1_swedish_ci,
date_added DATETIME DEFAULT NULL,
last_modified DATETIME DEFAULT NULL,
INDEX idx_customers_id (customers_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
$this->addSql('
CREATE TABLE customers_percents (
id INT AUTO_INCREMENT NOT NULL,
administrators_id INT NOT NULL,
customers_id INT NOT NULL,
percent INT DEFAULT \'0\',
notes TEXT DEFAULT NULL COLLATE latin1_swedish_ci,
date_added DATETIME DEFAULT NULL,
last_modified DATETIME DEFAULT NULL,
INDEX idx_administrators_id (administrators_id),
INDEX idx_customers_id (customers_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
// @todo: backup table data
$this->addSql('
CREATE TABLE customers_payment_status (
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(64) NOT NULL COLLATE latin1_swedish_ci,
INDEX idx_name (name),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
$this->addSql('INSERT INTO customers_payment_status (id, name) VALUES (1, \'Scheduling\')');
$this->addSql('INSERT INTO customers_payment_status (id, name) VALUES (2, \'Paid\')');
$this->addSql('INSERT INTO customers_payment_status (id, name) VALUES (3, \'Returned\')');
$this->addSql('
CREATE TABLE credit_cards (
id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(32) NOT NULL COLLATE latin1_swedish_ci,
pattern VARCHAR(64) NOT NULL COLLATE latin1_swedish_ci,
status TINYINT(1) DEFAULT \'0\',
sort_order INT DEFAULT NULL,
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
$this->addSql('
INSERT INTO credit_cards (id, name, pattern, status, sort_order)
VALUES
(1, \'American Express\', \'/^(34|37)\\d{13}$/\', 1, 0),
(2, \'Diners Club\', \'/^(30|36|38)\\d{12}$/\', 0, 0),
(3, \'JCB\', \'/^((2131|1800)\\d{11}|3[0135]\\d{14})$/\', 0, 0),
(4, \'MasterCard\', \'/^5[1-5]\\d{14}$/\', 1, 0),
(5, \'Visa\', \'/^4\\d{12}(\\d{3})?$/\', 1, 0),
(6, \'Discover Card\', \'/^6011\\d{12}$/\', 1, 0),
(7, \'Solo\', \'/^(63|67)\\d{14}(\\d{2,3})?$/\', 0, 0),
(8, \'Switch\', \'/^(49|56|63|67)\\d{14}(\\d{2,3})?$/\', 0, 0),
(9, \'Australian Bankcard\', \'/^5610\\d{12}$/\', 0, 0),
(10, \'enRoute\', \'/^(2014|2149)\\d{11}$/\', 0, 0),
(11, \'Laser\', \'/^6304\\d{12}(\\d{2,3})?$/\', 0, 0),
(12, \'Maestro\', \'/^(50|56|57|58|6)/\', 0, 0),
(13, \'Saferpay Test Card\', \'/^9451123100000004$/\', 0, 0)
');
$this->addSql('
CREATE TABLE report_stage_stats (
id INT AUTO_INCREMENT NOT NULL,
administrators_id INT NOT NULL,
stages_id INT NOT NULL,
customers INT DEFAULT 0 NOT NULL,
passdue INT DEFAULT 0 NOT NULL,
ontime INT DEFAULT 0 NOT NULL,
date_added DATETIME DEFAULT NULL,
INDEX idx_administrators_id (administrators_id),
INDEX idx_stages_id (stages_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = MyISAM
');
}
}