1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace Application\Migration; |
6
|
|
|
|
7
|
|
|
use Doctrine\DBAL\Schema\Schema; |
8
|
|
|
|
9
|
|
|
class Version20190319124509 extends AbstractMigration |
10
|
|
|
{ |
11
|
|
|
public function up(Schema $schema): void |
12
|
|
|
{ |
13
|
|
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); |
14
|
|
|
|
15
|
|
|
$this->addSql('ALTER TABLE category_category DROP FOREIGN KEY FK_B1369DBA4987E587'); |
16
|
|
|
$this->addSql('ALTER TABLE category_category DROP FOREIGN KEY FK_B1369DBA5062B508'); |
17
|
|
|
$this->addSql('ALTER TABLE transaction DROP FOREIGN KEY FK_723705D112469DE2'); |
18
|
|
|
$this->addSql('CREATE TABLE transaction_line (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, owner_id INT DEFAULT NULL, updater_id INT DEFAULT NULL, transaction_id INT NOT NULL, debit_id INT DEFAULT NULL, credit_id INT DEFAULT NULL, bookable_id INT DEFAULT NULL, transaction_tag_id INT DEFAULT NULL, creation_date DATETIME DEFAULT NULL, update_date DATETIME DEFAULT NULL, balance NUMERIC(7, 2) NOT NULL, transactionDate DATE NOT NULL, datatrans_ref VARCHAR(18) DEFAULT \'\' NOT NULL, is_reconcilied TINYINT(1) DEFAULT \'0\' NOT NULL, name VARCHAR(191) NOT NULL, remarks TEXT NOT NULL, INDEX IDX_33578A5761220EA6 (creator_id), INDEX IDX_33578A577E3C61F9 (owner_id), INDEX IDX_33578A57E37ECFB0 (updater_id), INDEX IDX_33578A572FC0CB0F (transaction_id), INDEX IDX_33578A57444E82EE (debit_id), INDEX IDX_33578A57CE062FF9 (credit_id), INDEX IDX_33578A57EC4F5B2F (bookable_id), INDEX IDX_33578A57CCAF1151 (transaction_tag_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB'); |
19
|
|
|
$this->addSql('CREATE TABLE transaction_tag (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, owner_id INT DEFAULT NULL, updater_id INT DEFAULT NULL, creation_date DATETIME DEFAULT NULL, update_date DATETIME DEFAULT NULL, name VARCHAR(191) NOT NULL, color VARCHAR(7) DEFAULT \'\' NOT NULL, INDEX IDX_F8CD024A61220EA6 (creator_id), INDEX IDX_F8CD024A7E3C61F9 (owner_id), INDEX IDX_F8CD024AE37ECFB0 (updater_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB'); |
20
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A5761220EA6 FOREIGN KEY (creator_id) REFERENCES user (id)'); |
21
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A577E3C61F9 FOREIGN KEY (owner_id) REFERENCES user (id)'); |
22
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A57E37ECFB0 FOREIGN KEY (updater_id) REFERENCES user (id)'); |
23
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A572FC0CB0F FOREIGN KEY (transaction_id) REFERENCES transaction (id) ON DELETE CASCADE'); |
24
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A57444E82EE FOREIGN KEY (debit_id) REFERENCES account (id) ON DELETE RESTRICT'); |
25
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A57CE062FF9 FOREIGN KEY (credit_id) REFERENCES account (id) ON DELETE RESTRICT'); |
26
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A57EC4F5B2F FOREIGN KEY (bookable_id) REFERENCES bookable (id) ON DELETE SET NULL'); |
27
|
|
|
$this->addSql('ALTER TABLE transaction_line ADD CONSTRAINT FK_33578A57CCAF1151 FOREIGN KEY (transaction_tag_id) REFERENCES transaction_tag (id) ON DELETE SET NULL'); |
28
|
|
|
$this->addSql('ALTER TABLE transaction_tag ADD CONSTRAINT FK_F8CD024A61220EA6 FOREIGN KEY (creator_id) REFERENCES user (id)'); |
29
|
|
|
$this->addSql('ALTER TABLE transaction_tag ADD CONSTRAINT FK_F8CD024A7E3C61F9 FOREIGN KEY (owner_id) REFERENCES user (id)'); |
30
|
|
|
$this->addSql('ALTER TABLE transaction_tag ADD CONSTRAINT FK_F8CD024AE37ECFB0 FOREIGN KEY (updater_id) REFERENCES user (id)'); |
31
|
|
|
$this->addSql('DROP TABLE category'); |
32
|
|
|
$this->addSql('DROP TABLE category_category'); |
33
|
|
|
$this->addSql('ALTER TABLE transaction DROP FOREIGN KEY FK_723705D19B6B5FBA'); |
34
|
|
|
$this->addSql('ALTER TABLE transaction DROP FOREIGN KEY FK_723705D1EC4F5B2F'); |
35
|
|
|
$this->addSql('DROP INDEX IDX_723705D19B6B5FBA ON transaction'); |
36
|
|
|
$this->addSql('DROP INDEX IDX_723705D112469DE2 ON transaction'); |
37
|
|
|
$this->addSql('DROP INDEX IDX_723705D1EC4F5B2F ON transaction'); |
38
|
|
|
$this->addSql('ALTER TABLE transaction DROP account_id, DROP category_id, DROP bookable_id, DROP amount'); |
39
|
|
|
$this->addSql('ALTER TABLE account ADD parent_id INT DEFAULT NULL, ADD type ENUM(\'asset\', \'liability\', \'revenue\', \'expense\', \'equity\', \'group\') NOT NULL COMMENT \'(DC2Type:AccountType)\', ADD code VARCHAR(10) NOT NULL'); |
40
|
|
|
$this->addSql('ALTER TABLE account ADD CONSTRAINT FK_7D3656A4727ACA70 FOREIGN KEY (parent_id) REFERENCES account (id) ON DELETE CASCADE'); |
41
|
|
|
$this->addSql('DROP INDEX UNIQ_7D3656A4FAD56E62 ON account'); |
42
|
|
|
$this->addSql('ALTER TABLE account CHANGE iban iban VARCHAR(34) DEFAULT \'\' NOT NULL'); |
43
|
|
|
$this->addSql('DROP INDEX UNIQ_8D93D649FAD56E62 ON user'); |
44
|
|
|
$this->addSql('ALTER TABLE user CHANGE iban iban VARCHAR(34) DEFAULT \'\' NOT NULL'); |
45
|
|
|
$this->addSql('CREATE UNIQUE INDEX UNIQ_7D3656A477153098 ON account (code)'); |
46
|
|
|
$this->addSql('CREATE INDEX IDX_7D3656A4727ACA70 ON account (parent_id)'); |
47
|
|
|
$this->addSql('ALTER TABLE accounting_document ADD transaction_id INT DEFAULT NULL, CHANGE expense_claim_id expense_claim_id INT DEFAULT NULL'); |
48
|
|
|
$this->addSql('ALTER TABLE accounting_document ADD CONSTRAINT FK_60EDA7842FC0CB0F FOREIGN KEY (transaction_id) REFERENCES transaction (id) ON DELETE CASCADE'); |
49
|
|
|
$this->addSql('CREATE INDEX IDX_60EDA7842FC0CB0F ON accounting_document (transaction_id)'); |
50
|
|
|
} |
51
|
|
|
} |
52
|
|
|
|