Allow revising active betas with fresh tests and history
This commit is contained in:
@@ -347,6 +347,7 @@ export function db(): Database.Database {
|
||||
migrateTable(handle, 'scripts', SCRIPTS_COLUMNS);
|
||||
migrateTable(handle, 'script_versions', SCRIPT_VERSIONS_COLUMNS);
|
||||
migrateTable(handle, 'beta_scripts', BETA_SCRIPTS_COLUMNS);
|
||||
migrateTable(handle, 'beta_test_runs', [{ name: 'revision', ddl: 'ALTER TABLE beta_test_runs ADD COLUMN revision INTEGER NOT NULL DEFAULT 1' }]);
|
||||
migrateTable(handle, 'deployment_scripts', DEPLOYMENT_SCRIPTS_COLUMNS);
|
||||
migrateTable(handle, 'deployments', DEPLOYMENTS_COLUMNS);
|
||||
migrateTable(handle, 'server_launch_collections', [
|
||||
|
||||
@@ -180,6 +180,32 @@ CREATE TABLE IF NOT EXISTS betas (
|
||||
CREATE INDEX IF NOT EXISTS idx_betas_state ON betas(state);
|
||||
CREATE INDEX IF NOT EXISTS idx_betas_script ON betas(script_id);
|
||||
|
||||
-- Revisions keep the beta identity and original rollback images. Archived
|
||||
-- files are independent copies so version cleanup cannot erase this history.
|
||||
CREATE TABLE IF NOT EXISTS beta_revisions (
|
||||
beta_id INTEGER NOT NULL REFERENCES betas(id) ON DELETE CASCADE,
|
||||
revision INTEGER NOT NULL,
|
||||
started_at TEXT NOT NULL,
|
||||
notes TEXT,
|
||||
results_json TEXT,
|
||||
PRIMARY KEY (beta_id, revision)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS beta_revision_files (
|
||||
beta_id INTEGER NOT NULL,
|
||||
revision INTEGER NOT NULL,
|
||||
script_id INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
kind TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
version_id INTEGER NOT NULL,
|
||||
version INTEGER NOT NULL,
|
||||
release_version TEXT,
|
||||
sha256 TEXT NOT NULL,
|
||||
content BLOB NOT NULL,
|
||||
PRIMARY KEY (beta_id, revision, script_id),
|
||||
FOREIGN KEY (beta_id, revision) REFERENCES beta_revisions(beta_id, revision) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS beta_servers (
|
||||
beta_id INTEGER NOT NULL REFERENCES betas(id) ON DELETE CASCADE,
|
||||
server TEXT NOT NULL,
|
||||
@@ -208,6 +234,7 @@ CREATE TABLE IF NOT EXISTS beta_test_plans (
|
||||
CREATE TABLE IF NOT EXISTS beta_test_runs (
|
||||
id TEXT PRIMARY KEY,
|
||||
beta_id INTEGER NOT NULL REFERENCES betas(id) ON DELETE CASCADE,
|
||||
revision INTEGER NOT NULL DEFAULT 1,
|
||||
server TEXT NOT NULL,
|
||||
phase INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user