31 lines
1.3 KiB
SQL
31 lines
1.3 KiB
SQL
|
|
-- This migration runs on the CONTROL PLANE database (port 5433), not the tenant DB.
|
|
-- We need to ensure we migrate the correct DB.
|
|
-- For MVP, if we only have one migration pipeline, we might mix them?
|
|
-- Ideally we use `sqlx migrate run --database-url ...` for this specific migration.
|
|
-- Or we just put this table in the main DB for the MVP to avoid infrastructure complexity?
|
|
-- The `docker-compose.yml` has `control_db`.
|
|
-- Let's try to use the main DB for everything in MVP to reduce friction,
|
|
-- OR use a separate folder for control plane migrations.
|
|
|
|
-- Let's put `projects` in the `public` schema of the main DB for simplicity of the "Single Tenant / Self Hosted" mode.
|
|
-- In a real SaaS, this would be separate.
|
|
|
|
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
|
|
CREATE TABLE IF NOT EXISTS projects (
|
|
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
owner_id UUID, -- No FK to users strictly required if users are in tenant DB, but here they are same DB.
|
|
status TEXT DEFAULT 'active',
|
|
db_url TEXT NOT NULL,
|
|
jwt_secret TEXT NOT NULL DEFAULT encode(gen_random_bytes(32), 'hex'),
|
|
anon_key TEXT,
|
|
service_role_key TEXT,
|
|
created_at TIMESTAMPTZ DEFAULT now(),
|
|
updated_at TIMESTAMPTZ DEFAULT now()
|
|
);
|
|
|
|
-- Trigger to generate keys on insert? Or handle in code.
|
|
-- Let's handle in code for keys.
|