feat: add database migrations for environments, apps, deployments
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
CREATE TABLE environments (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||||
|
slug VARCHAR(100) NOT NULL,
|
||||||
|
display_name VARCHAR(255) NOT NULL,
|
||||||
|
bootstrap_token TEXT NOT NULL,
|
||||||
|
status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE',
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
UNIQUE(tenant_id, slug)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_environments_tenant_id ON environments(tenant_id);
|
||||||
17
src/main/resources/db/migration/V008__create_apps.sql
Normal file
17
src/main/resources/db/migration/V008__create_apps.sql
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
CREATE TABLE apps (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
environment_id UUID NOT NULL REFERENCES environments(id) ON DELETE CASCADE,
|
||||||
|
slug VARCHAR(100) NOT NULL,
|
||||||
|
display_name VARCHAR(255) NOT NULL,
|
||||||
|
jar_storage_path VARCHAR(500),
|
||||||
|
jar_checksum VARCHAR(64),
|
||||||
|
jar_original_filename VARCHAR(255),
|
||||||
|
jar_size_bytes BIGINT,
|
||||||
|
current_deployment_id UUID,
|
||||||
|
previous_deployment_id UUID,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
UNIQUE(environment_id, slug)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_apps_environment_id ON apps(environment_id);
|
||||||
16
src/main/resources/db/migration/V009__create_deployments.sql
Normal file
16
src/main/resources/db/migration/V009__create_deployments.sql
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
CREATE TABLE deployments (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
app_id UUID NOT NULL REFERENCES apps(id) ON DELETE CASCADE,
|
||||||
|
version INTEGER NOT NULL,
|
||||||
|
image_ref VARCHAR(500) NOT NULL,
|
||||||
|
desired_status VARCHAR(20) NOT NULL DEFAULT 'RUNNING',
|
||||||
|
observed_status VARCHAR(20) NOT NULL DEFAULT 'BUILDING',
|
||||||
|
orchestrator_metadata JSONB DEFAULT '{}',
|
||||||
|
error_message TEXT,
|
||||||
|
deployed_at TIMESTAMPTZ,
|
||||||
|
stopped_at TIMESTAMPTZ,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
UNIQUE(app_id, version)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_deployments_app_id ON deployments(app_id);
|
||||||
Reference in New Issue
Block a user