CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
Blame · Line-by-line history
0095_cloud_deploys.sql
Each line is annotated with the commit that last touched it. Click any SHA to jump to that commit and see the surrounding change.
| c9ed210 | 1 | -- Migration 0077: Multi-cloud deploy integration |
| 2 | -- Adds cloud_deploy_configs and cloud_deployments tables for push-triggered | |
| 3 | -- deploys to Fly.io, Railway, Render, Vercel, Netlify, and generic webhooks. | |
| 4 | ||
| 5 | CREATE TABLE IF NOT EXISTS cloud_deploy_configs ( | |
| 6 | id uuid PRIMARY KEY DEFAULT gen_random_uuid(), | |
| 7 | repo_id uuid NOT NULL REFERENCES repositories(id) ON DELETE CASCADE, | |
| 8 | provider text NOT NULL, -- 'fly' | 'railway' | 'render' | 'vercel' | 'netlify' | 'webhook' | |
| 9 | provider_app_id text NOT NULL, -- Fly app name, Railway service ID, Render service ID, Vercel project ID, webhook URL | |
| 10 | api_token_encrypted text NOT NULL, -- AES-256-GCM encrypted via SERVER_TARGETS_KEY | |
| 11 | trigger_branch text NOT NULL DEFAULT 'main', | |
| 12 | enabled boolean NOT NULL DEFAULT true, | |
| 13 | created_at timestamp DEFAULT now() | |
| 14 | ); | |
| 15 | ||
| 16 | CREATE TABLE IF NOT EXISTS cloud_deployments ( | |
| 17 | id uuid PRIMARY KEY DEFAULT gen_random_uuid(), | |
| 18 | config_id uuid NOT NULL REFERENCES cloud_deploy_configs(id) ON DELETE CASCADE, | |
| 19 | repo_id uuid NOT NULL REFERENCES repositories(id) ON DELETE CASCADE, | |
| 20 | commit_sha text NOT NULL, | |
| 21 | status text NOT NULL DEFAULT 'pending', -- pending | running | success | failed | cancelled | |
| 22 | provider_deploy_id text, -- provider's deployment ID for tracking | |
| 23 | log_url text, | |
| 24 | deploy_url text, -- live URL after success | |
| 25 | error_message text, | |
| 26 | started_at timestamp DEFAULT now(), | |
| 27 | completed_at timestamp, | |
| 28 | duration_ms integer | |
| 29 | ); | |
| 30 | ||
| 31 | CREATE INDEX IF NOT EXISTS cloud_deployments_repo ON cloud_deployments(repo_id, started_at DESC); | |
| 32 | CREATE INDEX IF NOT EXISTS cloud_deployments_config ON cloud_deployments(config_id, started_at DESC); |