seedproject-web/api/db/migrations/006_projects_gallery_skills.sql
Carlos Arias 43ae1e2015 Baseline: full site build (brand, pages, DB, agent-editable)
Establishes the deploy baseline on main so the admin agent's publish/rollback
has a clean starting point. Everything built to date: sumi-e brand system,
homepage, projects (DB-driven case studies), resume, about, services +
website-design detail, contact form + DB, changelog, favicon + share card.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DoFYZY9gkGPNDqZ7NuEa9a
2026-07-23 20:21:28 +00:00

19 lines
964 B
SQL

-- Richer project detail pages: a photo gallery and a grouped skills breakdown.
--
-- Both are JSON, same reasoning as the categories/metrics columns already on
-- this table: small, per-row, repeating lists that never need to be queried
-- across projects. A gallery image belongs to exactly one project; normalising
-- it into cja_project_images would add a table and a join to store what is
-- effectively an ordered list.
--
-- gallery : [ { "src": "/projects/x/1.jpg", "alt": "...", "caption": "..." }, ... ]
-- skills : [ { "group": "Engineering", "items": ["API design", "..."] }, ... ]
--
-- `links` already exists and is JSON — no change needed. It now carries more
-- keys: { "live": "...", "instagram": "...", "github": "..." }.
ALTER TABLE `cja_projects`
ADD COLUMN `gallery` longtext DEFAULT NULL
CHECK (json_valid(`gallery`)) AFTER `metrics`,
ADD COLUMN `skills` longtext DEFAULT NULL
CHECK (json_valid(`skills`)) AFTER `stack`;