Files
team-api/migrations/000006_model_groups.sql
T

67 lines
2.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- +goose Up
-- 模型分组功能:通过分组批量管理租户可用的模型
-- 模型分组定义
CREATE TABLE mdl_model_groups (
id BIGSERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
code VARCHAR(50) NOT NULL,
description TEXT,
status VARCHAR(20) DEFAULT 'active' NOT NULL,
created_at TIMESTAMPTZ DEFAULT now() NOT NULL,
updated_at TIMESTAMPTZ DEFAULT now() NOT NULL,
CONSTRAINT uk_mdl_model_groups_code UNIQUE (code)
);
COMMENT ON TABLE mdl_model_groups IS '模型分组定义';
COMMENT ON COLUMN mdl_model_groups.id IS '主键ID';
COMMENT ON COLUMN mdl_model_groups.name IS '分组名称(如"全量模型"、"基础对话")';
COMMENT ON COLUMN mdl_model_groups.code IS '分组唯一标识(如 full_access、basic_chat)';
COMMENT ON COLUMN mdl_model_groups.description IS '分组描述';
COMMENT ON COLUMN mdl_model_groups.status IS '状态:active(启用)/ disabled(禁用)';
COMMENT ON COLUMN mdl_model_groups.created_at IS '创建时间';
COMMENT ON COLUMN mdl_model_groups.updated_at IS '更新时间';
-- 分组-模型关联(多对多)
CREATE TABLE mdl_group_models (
id BIGSERIAL PRIMARY KEY,
group_id BIGINT NOT NULL,
model_id BIGINT NOT NULL,
created_at TIMESTAMPTZ DEFAULT now() NOT NULL,
updated_at TIMESTAMPTZ DEFAULT now() NOT NULL,
CONSTRAINT uk_mdl_group_models UNIQUE (group_id, model_id)
);
CREATE INDEX idx_mdl_group_models_model_id ON mdl_group_models (model_id);
COMMENT ON TABLE mdl_group_models IS '分组-模型关联';
COMMENT ON COLUMN mdl_group_models.id IS '主键ID';
COMMENT ON COLUMN mdl_group_models.group_id IS '分组ID(关联 mdl_model_groups.id)';
COMMENT ON COLUMN mdl_group_models.model_id IS '模型ID(关联 mdl_models.id)';
COMMENT ON COLUMN mdl_group_models.created_at IS '创建时间';
COMMENT ON COLUMN mdl_group_models.updated_at IS '更新时间';
-- 租户-分组关联(多对多)
CREATE TABLE mdl_tenant_groups (
id BIGSERIAL PRIMARY KEY,
tenant_id BIGINT NOT NULL,
group_id BIGINT NOT NULL,
created_at TIMESTAMPTZ DEFAULT now() NOT NULL,
updated_at TIMESTAMPTZ DEFAULT now() NOT NULL,
CONSTRAINT uk_mdl_tenant_groups UNIQUE (tenant_id, group_id)
);
CREATE INDEX idx_mdl_tenant_groups_tenant_id ON mdl_tenant_groups (tenant_id);
COMMENT ON TABLE mdl_tenant_groups IS '租户-分组关联';
COMMENT ON COLUMN mdl_tenant_groups.id IS '主键ID';
COMMENT ON COLUMN mdl_tenant_groups.tenant_id IS '租户ID(关联 tnt_tenants.id)';
COMMENT ON COLUMN mdl_tenant_groups.group_id IS '分组ID(关联 mdl_model_groups.id)';
COMMENT ON COLUMN mdl_tenant_groups.created_at IS '创建时间';
COMMENT ON COLUMN mdl_tenant_groups.updated_at IS '更新时间';
-- +goose Down
DROP TABLE IF EXISTS mdl_tenant_groups;
DROP TABLE IF EXISTS mdl_group_models;
DROP TABLE IF EXISTS mdl_model_groups;