upgrade
This commit is contained in:
@@ -123,6 +123,27 @@ CREATE TABLE IF NOT EXISTS miningcheck_payouts (
|
|||||||
KEY idx_miningcheck_payouts_project_payout_at (project_key, payout_at)
|
KEY idx_miningcheck_payouts_project_payout_at (project_key, payout_at)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS miningcheck_miner_offers (
|
||||||
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
project_key VARCHAR(64) NOT NULL,
|
||||||
|
label VARCHAR(120) NOT NULL,
|
||||||
|
runtime_months INT NULL,
|
||||||
|
mining_speed_value DECIMAL(20,4) NULL,
|
||||||
|
mining_speed_unit VARCHAR(8) NULL,
|
||||||
|
bonus_speed_value DECIMAL(20,4) NULL,
|
||||||
|
bonus_speed_unit VARCHAR(8) NULL,
|
||||||
|
base_price_amount DECIMAL(20,8) NOT NULL,
|
||||||
|
base_price_currency VARCHAR(10) NOT NULL,
|
||||||
|
payment_type VARCHAR(10) NOT NULL DEFAULT 'fiat',
|
||||||
|
auto_renew TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
|
note TEXT,
|
||||||
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT fk_mining_miner_offers_project FOREIGN KEY (project_key) REFERENCES miningcheck_projects(project_key) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_mining_miner_offers_base_price_currency_currency FOREIGN KEY (base_price_currency) REFERENCES miningcheck_currencies(code)
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_targets (
|
CREATE TABLE IF NOT EXISTS miningcheck_targets (
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
project_key VARCHAR(64) NOT NULL,
|
project_key VARCHAR(64) NOT NULL,
|
||||||
@@ -156,27 +177,6 @@ CREATE TABLE IF NOT EXISTS miningcheck_dashboard_definitions (
|
|||||||
CONSTRAINT uq_mining_dashboards_project_name UNIQUE (project_key, name)
|
CONSTRAINT uq_mining_dashboards_project_name UNIQUE (project_key, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_miner_offers (
|
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
project_key VARCHAR(64) NOT NULL,
|
|
||||||
label VARCHAR(120) NOT NULL,
|
|
||||||
runtime_months INT NULL,
|
|
||||||
mining_speed_value DECIMAL(20,4) NULL,
|
|
||||||
mining_speed_unit VARCHAR(8) NULL,
|
|
||||||
bonus_speed_value DECIMAL(20,4) NULL,
|
|
||||||
bonus_speed_unit VARCHAR(8) NULL,
|
|
||||||
base_price_amount DECIMAL(20,8) NOT NULL,
|
|
||||||
base_price_currency VARCHAR(10) NOT NULL,
|
|
||||||
payment_type VARCHAR(10) NOT NULL DEFAULT 'fiat',
|
|
||||||
auto_renew TINYINT(1) NOT NULL DEFAULT 0,
|
|
||||||
note TEXT,
|
|
||||||
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
||||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
||||||
CONSTRAINT fk_mining_miner_offers_project FOREIGN KEY (project_key) REFERENCES miningcheck_projects(project_key) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_mining_miner_offers_base_price_currency_currency FOREIGN KEY (base_price_currency) REFERENCES miningcheck_currencies(code)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_purchased_miners (
|
CREATE TABLE IF NOT EXISTS miningcheck_purchased_miners (
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
project_key VARCHAR(64) NOT NULL,
|
project_key VARCHAR(64) NOT NULL,
|
||||||
|
|||||||
@@ -132,6 +132,27 @@ CREATE TABLE IF NOT EXISTS miningcheck_payouts (
|
|||||||
CREATE INDEX IF NOT EXISTS idx_miningcheck_payouts_project_payout_at
|
CREATE INDEX IF NOT EXISTS idx_miningcheck_payouts_project_payout_at
|
||||||
ON miningcheck_payouts(project_key, owner_sub, payout_at);
|
ON miningcheck_payouts(project_key, owner_sub, payout_at);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS miningcheck_miner_offers (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
project_key VARCHAR(64) NOT NULL,
|
||||||
|
label VARCHAR(120) NOT NULL,
|
||||||
|
runtime_months INTEGER,
|
||||||
|
mining_speed_value NUMERIC(20,4),
|
||||||
|
mining_speed_unit VARCHAR(8),
|
||||||
|
bonus_speed_value NUMERIC(20,4),
|
||||||
|
bonus_speed_unit VARCHAR(8),
|
||||||
|
base_price_amount NUMERIC(20,8) NOT NULL,
|
||||||
|
base_price_currency VARCHAR(10) NOT NULL,
|
||||||
|
payment_type VARCHAR(10) NOT NULL DEFAULT 'fiat',
|
||||||
|
auto_renew BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
note TEXT,
|
||||||
|
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT fk_mining_miner_offers_project FOREIGN KEY (project_key) REFERENCES miningcheck_projects(project_key) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_mining_miner_offers_base_price_currency_currency FOREIGN KEY (base_price_currency) REFERENCES miningcheck_currencies(code)
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_targets (
|
CREATE TABLE IF NOT EXISTS miningcheck_targets (
|
||||||
id BIGSERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
project_key VARCHAR(64) NOT NULL,
|
project_key VARCHAR(64) NOT NULL,
|
||||||
@@ -167,27 +188,6 @@ CREATE TABLE IF NOT EXISTS miningcheck_dashboard_definitions (
|
|||||||
CONSTRAINT uq_mining_dashboards_project_name UNIQUE (project_key, owner_sub, name)
|
CONSTRAINT uq_mining_dashboards_project_name UNIQUE (project_key, owner_sub, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_miner_offers (
|
|
||||||
id BIGSERIAL PRIMARY KEY,
|
|
||||||
project_key VARCHAR(64) NOT NULL,
|
|
||||||
label VARCHAR(120) NOT NULL,
|
|
||||||
runtime_months INTEGER,
|
|
||||||
mining_speed_value NUMERIC(20,4),
|
|
||||||
mining_speed_unit VARCHAR(8),
|
|
||||||
bonus_speed_value NUMERIC(20,4),
|
|
||||||
bonus_speed_unit VARCHAR(8),
|
|
||||||
base_price_amount NUMERIC(20,8) NOT NULL,
|
|
||||||
base_price_currency VARCHAR(10) NOT NULL,
|
|
||||||
payment_type VARCHAR(10) NOT NULL DEFAULT 'fiat',
|
|
||||||
auto_renew BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
note TEXT,
|
|
||||||
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
||||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
CONSTRAINT fk_mining_miner_offers_project FOREIGN KEY (project_key) REFERENCES miningcheck_projects(project_key) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_mining_miner_offers_base_price_currency_currency FOREIGN KEY (base_price_currency) REFERENCES miningcheck_currencies(code)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_purchased_miners (
|
CREATE TABLE IF NOT EXISTS miningcheck_purchased_miners (
|
||||||
id BIGSERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
project_key VARCHAR(64) NOT NULL,
|
project_key VARCHAR(64) NOT NULL,
|
||||||
|
|||||||
@@ -123,6 +123,27 @@ CREATE TABLE IF NOT EXISTS miningcheck_payouts (
|
|||||||
KEY idx_miningcheck_payouts_project_payout_at (project_key, payout_at)
|
KEY idx_miningcheck_payouts_project_payout_at (project_key, payout_at)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS miningcheck_miner_offers (
|
||||||
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
project_key VARCHAR(64) NOT NULL,
|
||||||
|
label VARCHAR(120) NOT NULL,
|
||||||
|
runtime_months INT NULL,
|
||||||
|
mining_speed_value DECIMAL(20,4) NULL,
|
||||||
|
mining_speed_unit VARCHAR(8) NULL,
|
||||||
|
bonus_speed_value DECIMAL(20,4) NULL,
|
||||||
|
bonus_speed_unit VARCHAR(8) NULL,
|
||||||
|
base_price_amount DECIMAL(20,8) NOT NULL,
|
||||||
|
base_price_currency VARCHAR(10) NOT NULL,
|
||||||
|
payment_type VARCHAR(10) NOT NULL DEFAULT 'fiat',
|
||||||
|
auto_renew TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
|
note TEXT,
|
||||||
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT fk_mining_miner_offers_project FOREIGN KEY (project_key) REFERENCES miningcheck_projects(project_key) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_mining_miner_offers_base_price_currency_currency FOREIGN KEY (base_price_currency) REFERENCES miningcheck_currencies(code)
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_targets (
|
CREATE TABLE IF NOT EXISTS miningcheck_targets (
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
project_key VARCHAR(64) NOT NULL,
|
project_key VARCHAR(64) NOT NULL,
|
||||||
@@ -156,27 +177,6 @@ CREATE TABLE IF NOT EXISTS miningcheck_dashboard_definitions (
|
|||||||
CONSTRAINT uq_mining_dashboards_project_name UNIQUE (project_key, name)
|
CONSTRAINT uq_mining_dashboards_project_name UNIQUE (project_key, name)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_miner_offers (
|
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
project_key VARCHAR(64) NOT NULL,
|
|
||||||
label VARCHAR(120) NOT NULL,
|
|
||||||
runtime_months INT NULL,
|
|
||||||
mining_speed_value DECIMAL(20,4) NULL,
|
|
||||||
mining_speed_unit VARCHAR(8) NULL,
|
|
||||||
bonus_speed_value DECIMAL(20,4) NULL,
|
|
||||||
bonus_speed_unit VARCHAR(8) NULL,
|
|
||||||
base_price_amount DECIMAL(20,8) NOT NULL,
|
|
||||||
base_price_currency VARCHAR(10) NOT NULL,
|
|
||||||
payment_type VARCHAR(10) NOT NULL DEFAULT 'fiat',
|
|
||||||
auto_renew TINYINT(1) NOT NULL DEFAULT 0,
|
|
||||||
note TEXT,
|
|
||||||
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
||||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
||||||
CONSTRAINT fk_mining_miner_offers_project FOREIGN KEY (project_key) REFERENCES miningcheck_projects(project_key) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_mining_miner_offers_base_price_currency_currency FOREIGN KEY (base_price_currency) REFERENCES miningcheck_currencies(code)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS miningcheck_purchased_miners (
|
CREATE TABLE IF NOT EXISTS miningcheck_purchased_miners (
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
project_key VARCHAR(64) NOT NULL,
|
project_key VARCHAR(64) NOT NULL,
|
||||||
|
|||||||
@@ -118,15 +118,7 @@ final class SchemaManager
|
|||||||
|
|
||||||
public function schemaStatus(): array
|
public function schemaStatus(): array
|
||||||
{
|
{
|
||||||
$requiredTables = [
|
$requiredTables = $this->knownTablesInCreateOrder();
|
||||||
$this->prefix . 'projects',
|
|
||||||
$this->prefix . 'currencies',
|
|
||||||
$this->prefix . 'settings',
|
|
||||||
$this->prefix . 'cost_plans',
|
|
||||||
$this->prefix . 'measurements',
|
|
||||||
$this->prefix . 'targets',
|
|
||||||
$this->prefix . 'dashboard_definitions',
|
|
||||||
];
|
|
||||||
|
|
||||||
$presentTables = $this->existingTables($requiredTables);
|
$presentTables = $this->existingTables($requiredTables);
|
||||||
$missingTables = array_values(array_diff($requiredTables, $presentTables));
|
$missingTables = array_values(array_diff($requiredTables, $presentTables));
|
||||||
@@ -1259,7 +1251,26 @@ final class SchemaManager
|
|||||||
|
|
||||||
private function knownTablesInDropOrder(): array
|
private function knownTablesInDropOrder(): array
|
||||||
{
|
{
|
||||||
$allTables = array_merge($this->coreTables(), $this->extraTables());
|
return array_reverse($this->knownTablesInCreateOrder());
|
||||||
return array_reverse($allTables);
|
}
|
||||||
|
|
||||||
|
private function knownTablesInCreateOrder(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
$this->prefix . 'projects',
|
||||||
|
$this->prefix . 'currencies',
|
||||||
|
$this->prefix . 'currency_aliases',
|
||||||
|
$this->prefix . 'settings',
|
||||||
|
$this->prefix . 'cost_plans',
|
||||||
|
$this->prefix . 'measurements',
|
||||||
|
$this->prefix . 'measurement_rates',
|
||||||
|
$this->prefix . 'payouts',
|
||||||
|
$this->prefix . 'miner_offers',
|
||||||
|
$this->prefix . 'targets',
|
||||||
|
$this->prefix . 'dashboard_definitions',
|
||||||
|
$this->prefix . 'purchased_miners',
|
||||||
|
$this->prefix . 'fx_fetches',
|
||||||
|
$this->prefix . 'fx_rates',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user