feat: [US-055] - Database schema update for characters and variables
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
d9c42f4cf7
commit
1f7bd321a2
|
|
@ -0,0 +1,45 @@
|
||||||
|
-- Migration: Add characters and variables arrays to flowchart_data JSONB default
|
||||||
|
-- Part of Character/Variable Management feature (US-055)
|
||||||
|
--
|
||||||
|
-- The characters and variables arrays are stored within the flowchart_data JSONB column.
|
||||||
|
-- This migration updates the default value for new projects to include empty arrays.
|
||||||
|
-- Existing projects without these fields are handled at the application layer,
|
||||||
|
-- which defaults missing characters/variables to empty arrays on read.
|
||||||
|
|
||||||
|
-- =============================================================================
|
||||||
|
-- UPDATE DEFAULT VALUE FOR flowchart_data
|
||||||
|
-- =============================================================================
|
||||||
|
-- Update the default to include characters and variables arrays
|
||||||
|
ALTER TABLE projects
|
||||||
|
ALTER COLUMN flowchart_data
|
||||||
|
SET DEFAULT '{"nodes": [], "edges": [], "characters": [], "variables": []}'::jsonb;
|
||||||
|
|
||||||
|
-- =============================================================================
|
||||||
|
-- DOCUMENTATION: JSONB Structure
|
||||||
|
-- =============================================================================
|
||||||
|
-- The flowchart_data column now expects the following top-level structure:
|
||||||
|
--
|
||||||
|
-- {
|
||||||
|
-- "nodes": [...], -- Array of flowchart nodes
|
||||||
|
-- "edges": [...], -- Array of flowchart edges
|
||||||
|
-- "characters": [ -- Array of character definitions
|
||||||
|
-- {
|
||||||
|
-- "id": "string", -- Unique identifier (nanoid)
|
||||||
|
-- "name": "string", -- Character name (required, unique per project)
|
||||||
|
-- "color": "string", -- Hex color code (e.g., "#FF5733")
|
||||||
|
-- "description": "string" -- Optional description
|
||||||
|
-- }
|
||||||
|
-- ],
|
||||||
|
-- "variables": [ -- Array of variable definitions
|
||||||
|
-- {
|
||||||
|
-- "id": "string", -- Unique identifier (nanoid)
|
||||||
|
-- "name": "string", -- Variable name (required, unique per project)
|
||||||
|
-- "type": "string", -- One of: 'numeric', 'string', 'boolean'
|
||||||
|
-- "initialValue": "any", -- Initial value matching the type
|
||||||
|
-- "description": "string" -- Optional description
|
||||||
|
-- }
|
||||||
|
-- ]
|
||||||
|
-- }
|
||||||
|
--
|
||||||
|
-- Note: Existing projects that do not have characters/variables fields
|
||||||
|
-- are handled at the application layer, which defaults them to empty arrays.
|
||||||
Loading…
Reference in New Issue