d6c468a9fc
- Add 'migrate' feature to sqlx dependency - Renumber migrations to fix duplicate version numbers (two 014 files) - Re-sequence migrations 009-012 for continuous ordering - Add ALTER TABLE ADD COLUMN IF NOT EXISTS baseline for notification table to handle existing databases missing newer columns - Remove deleted IM migration files (009-012) that were superseded
45 lines
2.1 KiB
SQL
45 lines
2.1 KiB
SQL
-- Release Assets - binary attachments for releases
|
|
CREATE TABLE IF NOT EXISTS repo_release_asset (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
release_id UUID NOT NULL REFERENCES repo_release(id) ON DELETE CASCADE,
|
|
filename TEXT NOT NULL,
|
|
size_bytes BIGINT NOT NULL,
|
|
mime_type TEXT NOT NULL DEFAULT 'application/octet-stream',
|
|
storage_path TEXT NOT NULL,
|
|
url TEXT,
|
|
download_count BIGINT NOT NULL DEFAULT 0,
|
|
uploaded_by UUID REFERENCES "user"(id) ON DELETE SET NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
deleted_at TIMESTAMPTZ
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_repo_release_asset_release ON repo_release_asset(release_id, deleted_at);
|
|
CREATE INDEX IF NOT EXISTS idx_repo_release_asset_deleted ON repo_release_asset(deleted_at) WHERE deleted_at IS NOT NULL;
|
|
|
|
-- PR Templates (mirrors issue_template structure)
|
|
CREATE TABLE IF NOT EXISTS pr_template (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
repo_id UUID NOT NULL REFERENCES repo(id) ON DELETE CASCADE,
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
title_template TEXT,
|
|
body_template TEXT NOT NULL DEFAULT '',
|
|
labels TEXT[] NOT NULL DEFAULT '{}',
|
|
active BOOLEAN NOT NULL DEFAULT true,
|
|
created_by UUID REFERENCES "user"(id) ON DELETE SET NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_pr_template_repo ON pr_template(repo_id);
|
|
|
|
-- PR Review Requests
|
|
CREATE TABLE IF NOT EXISTS pr_review_request (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
pull_request_id UUID NOT NULL REFERENCES pull_request(id) ON DELETE CASCADE,
|
|
reviewer_id UUID NOT NULL REFERENCES "user"(id) ON DELETE CASCADE,
|
|
requested_by UUID NOT NULL REFERENCES "user"(id) ON DELETE CASCADE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_pr_review_request_pr ON pr_review_request(pull_request_id);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_pr_review_request_pr_reviewer ON pr_review_request(pull_request_id, reviewer_id);
|