Update schema to PSR-2

This commit is contained in:
pxgamer
2018-05-29 15:40:28 +01:00
parent bff8025b15
commit c82e68c9b2

View File

@@ -1,18 +1,17 @@
<?php <?php
// when db schema modifications are done, this function is run. // when db schema modifications are done, this function is run.
$dbversion = intval($_config['dbversion']);
$dbversion=intval($_config['dbversion']);
$db->beginTransaction(); $db->beginTransaction();
if($dbversion==0){ if ($dbversion == 0) {
$db->run(" $db->run("
CREATE TABLE `accounts` ( CREATE TABLE `accounts` (
`id` varbinary(128) NOT NULL, `id` varbinary(128) NOT NULL,
`public_key` varbinary(1024) NOT NULL, `public_key` varbinary(1024) NOT NULL,
`block` varbinary(128) NOT NULL, `block` varbinary(128) NOT NULL,
`balance` decimal(20,8) NOT NULL `balance` decimal(20,8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;"); ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;");
$db->run("CREATE TABLE `blocks` ( $db->run("CREATE TABLE `blocks` (
`id` varbinary(128) NOT NULL, `id` varbinary(128) NOT NULL,
`generator` varbinary(128) NOT NULL, `generator` varbinary(128) NOT NULL,
@@ -24,16 +23,16 @@ if($dbversion==0){
`argon` varbinary(128) NOT NULL, `argon` varbinary(128) NOT NULL,
`transactions` INT NOT NULL `transactions` INT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
$db->run("CREATE TABLE `config` ( $db->run("CREATE TABLE `config` (
`cfg` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `cfg` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`val` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL `val` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
$db->run("INSERT INTO `config` (`cfg`, `val`) VALUES $db->run("INSERT INTO `config` (`cfg`, `val`) VALUES
('hostname', '');"); ('hostname', '');");
$db->run("INSERT INTO `config` (`cfg`, `val`) VALUES $db->run("INSERT INTO `config` (`cfg`, `val`) VALUES
('dbversion', '1');"); ('dbversion', '1');");
@@ -51,7 +50,7 @@ if($dbversion==0){
`date` bigint(20) NOT NULL, `date` bigint(20) NOT NULL,
`peer` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL `peer` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
$db->run("CREATE TABLE `peers` ( $db->run("CREATE TABLE `peers` (
`id` int(11) NOT NULL, `id` int(11) NOT NULL,
`hostname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, `hostname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
@@ -60,8 +59,8 @@ if($dbversion==0){
`reserve` tinyint(4) NOT NULL DEFAULT 1, `reserve` tinyint(4) NOT NULL DEFAULT 1,
`ip` varchar(45) NOT NULL `ip` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
$db->run("CREATE TABLE `transactions` ( $db->run("CREATE TABLE `transactions` (
`id` varbinary(128) NOT NULL, `id` varbinary(128) NOT NULL,
`block` varbinary(128) NOT NULL, `block` varbinary(128) NOT NULL,
@@ -75,75 +74,74 @@ if($dbversion==0){
`date` int(11) NOT NULL, `date` int(11) NOT NULL,
`public_key` varbinary(1024) NOT NULL `public_key` varbinary(1024) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
$db->run("ALTER TABLE `peers` $db->run("ALTER TABLE `peers`
ADD PRIMARY KEY (`id`);"); ADD PRIMARY KEY (`id`);");
$db->run("ALTER TABLE `peers` $db->run("ALTER TABLE `peers`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;"); MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;");
$db->run("ALTER TABLE `accounts` $db->run("ALTER TABLE `accounts`
ADD PRIMARY KEY (`id`), ADD PRIMARY KEY (`id`),
ADD KEY `accounts` (`block`);"); ADD KEY `accounts` (`block`);");
$db->run("ALTER TABLE `blocks` $db->run("ALTER TABLE `blocks`
ADD PRIMARY KEY (`id`), ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `height` (`height`);"); ADD UNIQUE KEY `height` (`height`);");
$db->run("ALTER TABLE `config` ADD PRIMARY KEY (`cfg`);"); $db->run("ALTER TABLE `config` ADD PRIMARY KEY (`cfg`);");
$db->run("ALTER TABLE `mempool` $db->run("ALTER TABLE `mempool`
ADD PRIMARY KEY (`id`), ADD PRIMARY KEY (`id`),
ADD KEY `height` (`height`);"); ADD KEY `height` (`height`);");
$db->run("ALTER TABLE `peers` $db->run("ALTER TABLE `peers`
ADD UNIQUE KEY `hostname` (`hostname`), ADD UNIQUE KEY `hostname` (`hostname`),
ADD UNIQUE KEY `ip` (`ip`), ADD UNIQUE KEY `ip` (`ip`),
ADD KEY `blacklisted` (`blacklisted`), ADD KEY `blacklisted` (`blacklisted`),
ADD KEY `ping` (`ping`), ADD KEY `ping` (`ping`),
ADD KEY `reserve` (`reserve`);"); ADD KEY `reserve` (`reserve`);");
$db->run("ALTER TABLE `transactions` $db->run("ALTER TABLE `transactions`
ADD PRIMARY KEY (`id`), ADD PRIMARY KEY (`id`),
ADD KEY `block_id` (`block`);"); ADD KEY `block_id` (`block`);");
$db->run("ALTER TABLE `accounts` $db->run("ALTER TABLE `accounts`
ADD CONSTRAINT `accounts` FOREIGN KEY (`block`) REFERENCES `blocks` (`id`) ON DELETE CASCADE;"); ADD CONSTRAINT `accounts` FOREIGN KEY (`block`) REFERENCES `blocks` (`id`) ON DELETE CASCADE;");
$db->run("ALTER TABLE `transactions` $db->run("ALTER TABLE `transactions`
ADD CONSTRAINT `block_id` FOREIGN KEY (`block`) REFERENCES `blocks` (`id`) ON DELETE CASCADE;"); ADD CONSTRAINT `block_id` FOREIGN KEY (`block`) REFERENCES `blocks` (`id`) ON DELETE CASCADE;");
$dbversion++; $dbversion++;
} }
if($dbversion==1){ if ($dbversion == 1) {
$db->run("INSERT INTO `config` (`cfg`, `val`) VALUES ('sanity_last', '0');"); $db->run("INSERT INTO `config` (`cfg`, `val`) VALUES ('sanity_last', '0');");
$dbversion++; $dbversion++;
} }
if($dbversion==2){ if ($dbversion == 2) {
$db->run("INSERT INTO `config` (`cfg`, `val`) VALUES ('sanity_sync', '0');"); $db->run("INSERT INTO `config` (`cfg`, `val`) VALUES ('sanity_sync', '0');");
$dbversion++; $dbversion++;
} }
if($dbversion==3){ if ($dbversion == 3) {
$dbversion++; $dbversion++;
} }
if($dbversion==4){ if ($dbversion == 4) {
$db->run("ALTER TABLE `mempool` ADD INDEX(`src`);"); $db->run("ALTER TABLE `mempool` ADD INDEX(`src`);");
$db->run("ALTER TABLE `mempool` ADD INDEX(`peer`); "); $db->run("ALTER TABLE `mempool` ADD INDEX(`peer`); ");
$db->run("ALTER TABLE `mempool` ADD INDEX(`val`); "); $db->run("ALTER TABLE `mempool` ADD INDEX(`val`); ");
$dbversion++; $dbversion++;
} }
if($dbversion==5){ if ($dbversion == 5) {
$db->run("ALTER TABLE `peers` ADD `fails` TINYINT NOT NULL DEFAULT '0' AFTER `ip`; "); $db->run("ALTER TABLE `peers` ADD `fails` TINYINT NOT NULL DEFAULT '0' AFTER `ip`; ");
$dbversion++; $dbversion++;
} }
if($dbversion==6){ if ($dbversion == 6) {
$db->run("ALTER TABLE `peers` ADD `stuckfail` TINYINT(4) NOT NULL DEFAULT '0' AFTER `fails`, ADD INDEX (`stuckfail`); "); $db->run("ALTER TABLE `peers` ADD `stuckfail` TINYINT(4) NOT NULL DEFAULT '0' AFTER `fails`, ADD INDEX (`stuckfail`); ");
$db->run("ALTER TABLE `accounts` ADD `alias` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL AFTER `balance`; "); $db->run("ALTER TABLE `accounts` ADD `alias` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL AFTER `balance`; ");
$dbversion++; $dbversion++;
} }
// update the db version to the latest one // update the db version to the latest one
if($dbversion!=$_config['dbversion']) $db->run("UPDATE config SET val=:val WHERE cfg='dbversion'",array(":val"=>$dbversion)); if ($dbversion != $_config['dbversion']) {
$db->run("UPDATE config SET val=:val WHERE cfg='dbversion'", [":val" => $dbversion]);
}
$db->commit(); $db->commit();
?>