diff --git a/modules/mining-checker/assets/js/app.js b/modules/mining-checker/assets/js/app.js index 7ab9ada..35e3791 100644 --- a/modules/mining-checker/assets/js/app.js +++ b/modules/mining-checker/assets/js/app.js @@ -998,6 +998,15 @@ }, 12000); try { + const schema = await request(`${apiBase}/projects/${encodeURIComponent(key)}/schema-status`, { timeoutMs: 4000 }); + const nextSchemaStatus = normalizeSchemaStatus(schema); + setSchemaStatus(nextSchemaStatus); + if (!nextSchemaStatus.all_present) { + setPayload(normalizeBootstrap(null, key)); + setError('Mining-Checker Schema ist noch nicht initialisiert. Bitte im Tab Settings die Datenbank initialisieren.'); + return; + } + const data = await request(`${apiBase}/projects/${encodeURIComponent(key)}/bootstrap`, { timeoutMs: 10000 }); const normalized = normalizeBootstrap(data, key); setPayload(normalized); diff --git a/modules/mining-checker/src/Infrastructure/SchemaManager.php b/modules/mining-checker/src/Infrastructure/SchemaManager.php index a9f7952..25f39df 100644 --- a/modules/mining-checker/src/Infrastructure/SchemaManager.php +++ b/modules/mining-checker/src/Infrastructure/SchemaManager.php @@ -722,7 +722,7 @@ final class SchemaManager base_currency VARCHAR(10) NOT NULL, quote_currency VARCHAR(10) NOT NULL, rate NUMERIC(20,10) NOT NULL, - provider VARCHAR(32) NOT NULL DEFAULT 'derived', + provider VARCHAR(32) NOT NULL DEFAULT \'derived\', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_mining_measurement_rates_measurement FOREIGN KEY (measurement_id) REFERENCES ' . $measurementTable . '(id) ON DELETE CASCADE, CONSTRAINT uq_mining_measurement_rate_pair UNIQUE (measurement_id, base_currency, quote_currency) @@ -737,7 +737,7 @@ final class SchemaManager base_currency VARCHAR(10) NOT NULL, quote_currency VARCHAR(10) NOT NULL, rate DECIMAL(20,10) NOT NULL, - provider VARCHAR(32) NOT NULL DEFAULT 'derived', + provider VARCHAR(32) NOT NULL DEFAULT \'derived\', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_mining_measurement_rates_measurement FOREIGN KEY (measurement_id) REFERENCES `' . $measurementTable . '`(id) ON DELETE CASCADE, CONSTRAINT uq_mining_measurement_rate_pair UNIQUE (measurement_id, base_currency, quote_currency), @@ -763,7 +763,7 @@ final class SchemaManager project_key VARCHAR(64) NOT NULL, payout_at TIMESTAMP NOT NULL, coins_amount NUMERIC(20,6) NOT NULL, - payout_currency VARCHAR(10) NOT NULL DEFAULT 'DOGE', + payout_currency VARCHAR(10) NOT NULL DEFAULT \'DOGE\', note TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -777,7 +777,7 @@ final class SchemaManager project_key VARCHAR(64) NOT NULL, payout_at TIMESTAMP NOT NULL, coins_amount DECIMAL(20,6) NOT NULL, - payout_currency VARCHAR(10) NOT NULL DEFAULT 'DOGE', + payout_currency VARCHAR(10) NOT NULL DEFAULT \'DOGE\', note TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, @@ -808,7 +808,7 @@ final class SchemaManager ? [ 'CREATE TABLE IF NOT EXISTS ' . $fetchTable . ' ( id BIGSERIAL PRIMARY KEY, - provider VARCHAR(32) NOT NULL DEFAULT 'currencyapi', + provider VARCHAR(32) NOT NULL DEFAULT \'currencyapi\', base_currency VARCHAR(10) NOT NULL, rate_date DATE NOT NULL, fetched_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP @@ -827,7 +827,7 @@ final class SchemaManager : [ 'CREATE TABLE IF NOT EXISTS `' . $fetchTable . '` ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - provider VARCHAR(32) NOT NULL DEFAULT 'currencyapi', + provider VARCHAR(32) NOT NULL DEFAULT \'currencyapi\', base_currency VARCHAR(10) NOT NULL, rate_date DATE NOT NULL, fetched_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,