SQL
CREATE TABLE actions (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
params TEXT NOT NULL,
tier TEXT NOT NULL CHECK (tier IN ('T0','T1','T2','T3')),
status TEXT NOT NULL CHECK (status IN ('queued','needs_approval','approved','executing','applied','failed','cancelled')),
idempotency_key TEXT NOT NULL,
episode_id TEXT,
proposal_id TEXT,
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
applied_at TEXT,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
FOREIGN KEY (episode_id) REFERENCES episodes(id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
)
Columns
| Column | Data type | Allow null | Primary key | Actions |
|---|---|---|---|---|
id |
TEXT |
✓ | ✓ | Rename | Drop |
type |
TEXT |
Rename | Drop | ||
params |
TEXT |
Rename | Drop | ||
tier |
TEXT |
Rename | Drop | ||
status |
TEXT |
Rename | Drop | ||
idempotency_key |
TEXT |
Rename | Drop | ||
episode_id |
TEXT |
✓ | Rename | Drop | |
proposal_id |
TEXT |
✓ | Rename | Drop | |
updated_at |
TEXT |
Rename | Drop | ||
applied_at |
TEXT |
✓ | Rename | Drop | |
created_at |
TEXT |
Rename | Drop |
Foreign Keys
| Column | Destination |
|---|---|
episode_id |
episodes.id |
Indexes
| Name | Columns | Unique | SQL | Drop? |
|---|---|---|---|---|
| idx_actions_episode_status |
|
SQL | Drop | |
| idx_actions_idempotency |
idempotency_key
|
✓ | SQL | Drop |
| idx_actions_proposal |
|
SQL | Drop | |
| idx_actions_status_created_at |
|
SQL | Drop | |
| idx_actions_status_updated_at |
|
SQL | Drop | |
| sqlite_autoindex_actions_1 |
id
|
✓ | SQL | Drop |