6.2 KiB
Migration-by-Migration Change List
This document details exactly what needs to change in each migration file during consolidation.
Files to Keep (with modifications)
20250101000001_initial_setup.sql
REMOVE:
runtime_type_enumtype (lines ~42-46)
KEEP:
- All other enum types
- Extensions
- update_updated_column() function
20250101000002_core_tables.sql → Rename to 20250101000003_pack_system.sql
MODIFY runtime table (lines ~72-93):
CREATE TABLE runtime (
id BIGSERIAL PRIMARY KEY,
ref TEXT NOT NULL UNIQUE,
pack BIGINT REFERENCES pack(id) ON DELETE CASCADE,
pack_ref TEXT,
description TEXT,
-- REMOVE: runtime_type runtime_type_enum NOT NULL,
name TEXT NOT NULL,
distributions JSONB NOT NULL,
installation JSONB,
created TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated TIMESTAMPTZ NOT NULL DEFAULT NOW(),
-- REMOVE: CONSTRAINT runtime_ref_format CHECK (ref ~ '^[^.]+\.(action|sensor)\.[^.]+$')
CONSTRAINT runtime_ref_lowercase CHECK (ref = LOWER(ref))
);
REMOVE indexes:
idx_runtime_typeidx_runtime_pack_typeidx_runtime_type_created
ADD indexes:
idx_runtime_name(added in unify migration)idx_runtime_verificationGIN index (added in unify migration)
20250101000003_event_system.sql → Rename to 20250101000005_trigger_event_rule.sql
MODIFY trigger table (add webhook columns from start):
CREATE TABLE trigger (
-- ... existing columns ...
-- ADD FROM START:
webhook_enabled BOOLEAN NOT NULL DEFAULT FALSE,
webhook_key VARCHAR(64) UNIQUE,
webhook_config JSONB DEFAULT '{}'::jsonb,
-- ... rest of columns ...
);
MODIFY event table (add rule tracking from start):
CREATE TABLE event (
-- ... existing columns ...
-- ADD FROM START:
rule BIGINT,
rule_ref TEXT,
-- ... rest of columns ...
);
-- ADD constraint:
ALTER TABLE event
ADD CONSTRAINT event_rule_fkey
FOREIGN KEY (rule) REFERENCES rule(id) ON DELETE SET NULL;
MODIFY rule table (add is_adhoc from start):
CREATE TABLE rule (
-- ... existing columns ...
-- ADD FROM START:
is_adhoc BOOLEAN DEFAULT false NOT NULL,
-- ... rest of columns ...
);
20250101000004_execution_system.sql → Rename to 20250101000006_execution_system.sql
MODIFY execution table (add workflow columns from start):
CREATE TABLE execution (
-- ... existing columns ...
-- ADD FROM START:
is_workflow BOOLEAN DEFAULT false NOT NULL,
workflow_def BIGINT REFERENCES workflow_definition(id) ON DELETE CASCADE,
workflow_task JSONB,
-- ... rest of columns ...
);
REMOVE:
workflow_task_executiontable (lines ~329-360)- Don't create it at all
20250101000005_supporting_tables.sql → Rename to 20250101000008_worker_notification.sql
MODIFY worker table (add role from start):
First, ensure worker_role_enum is created in 20250101000001_initial_setup.sql:
CREATE TYPE worker_role_enum AS ENUM ('action', 'sensor', 'hybrid');
Then in worker table:
CREATE TABLE worker (
-- ... existing columns ...
-- ADD FROM START:
worker_role worker_role_enum NOT NULL DEFAULT 'action',
-- ... rest of columns ...
);
MODIFY action table (add is_adhoc from start):
CREATE TABLE action (
-- ... existing columns ...
-- ADD FROM START:
is_adhoc BOOLEAN DEFAULT false NOT NULL,
-- ... rest of columns ...
);
MODIFY sensor table (add is_adhoc from start):
CREATE TABLE sensor (
-- ... existing columns ...
-- ADD FROM START:
is_adhoc BOOLEAN DEFAULT false NOT NULL,
-- ... rest of columns ...
);
Files to Remove Entirely
20260119000001_add_execution_notify_trigger.sql- Consolidate into notify triggers migration20260120000001_add_webhook_support.sql- Columns added in trigger table from start20260120000002_webhook_advanced_features.sql- Functions consolidated, columns already in trigger table20260127000001_consolidate_webhook_config.sql- Already consolidated in base migration20260127212500_consolidate_workflow_task_execution.sql- Already in base execution table20260129000001_fix_webhook_function_overload.sql- Use fixed functions from start20260129140130_add_is_adhoc_flag.sql- Already in base tables20260129150000_add_event_notify_trigger.sql- Consolidate into notify triggers migration20260130000001_add_rule_to_event.sql- Already in event table20260131000001_add_worker_role.sql- Already in worker table20260202000001_add_sensor_runtimes.sql- Data now in YAML files20260203000001_unify_runtimes.sql- Changes already applied to base tables20260203000003_add_rule_trigger_to_execution_notify.sql- Consolidate into notify triggers migration20260204000001_add_enforcement_notify_trigger.sql- Consolidate into notify triggers migration20260204000001_restore_webhook_functions.sql- Use final functions from start
New Files to Create
20250101000010_webhook_system.sql
- Webhook-related tables
- FINAL versions of webhook functions (from 20260204000001_restore_webhook_functions.sql)
- No individual webhook columns (use webhook_config JSONB)
20250101000011_pack_environments.sql
-- From 20260203000002_add_pack_environments.sql
CREATE TYPE pack_environment_status_enum AS ENUM (...);
CREATE TABLE pack_environment (...);
ALTER TABLE pack ADD COLUMN IF NOT EXISTS installers JSONB DEFAULT '[]'::jsonb;
20250101000013_notify_triggers.sql
Consolidate ALL LISTEN/NOTIFY triggers from:
- 20260119000001 - execution
- 20260129150000 - event
- 20260203000003 - add rule to execution notify
- 20260204000001 - enforcement
Final notify_execution_change() function should include rule field from the start.
Files to Keep As-Is
20260120200000_add_pack_test_results.sql→ Rename to20250101000012_pack_testing.sql20260122000001_pack_installation_metadata.sql→ Merge into pack_system or keep separate
Summary
Original: 22 migration files
Consolidated: ~13 migration files
Removed: 15 files (consolidation or data moved to YAML)
Modified: 5 files (add columns/constraints from start)
New: 3 files (consolidated functionality)