Files
janus/sql/v0.0.1.sql
T
yangzhaohan 0794474c04 feat(model): 新增基础数据模型与路由配置
- 新增 BaseModel 结构体,包含统一主键和时间字段
- 定义 JanusProvider、JanusModel、Channel、APIKey 四个业务模型结构
- 引入 Status 枚举表示启用/禁用状态
- 完成对应数据库建表 SQL 迁移脚本
- 新增 router 包及 API 健康检查路由注册实现
- 优化 main.go,使用 router 包统一路由注册管理
- 补充模型中字段的 GORM 和 JSON 标签规范
2026-07-14 23:36:41 +08:00

113 lines
5.6 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.
CREATE TABLE public.janus_providers
(
id bigint NOT NULL,
name varchar(100) NULL,
base_url varchar(255) NULL,
status int4 DEFAULT 0 NULL,
created_at bigint NOT NULL,
created_time timestamp NOT NULL,
updated_at bigint NULL,
updated_time timestamp NULL,
del_flag int4 DEFAULT 0 NOT NULL,
CONSTRAINT janus_providers_pk PRIMARY KEY (id)
);
COMMENT ON TABLE public.janus_providers IS 'AI 服务供应商(OpenAI、Anthropic、Azure 等)';
COMMENT ON COLUMN public.janus_providers.id IS '主键ID';
COMMENT ON COLUMN public.janus_providers.name IS '服务供应商名称';
COMMENT ON COLUMN public.janus_providers.base_url IS '服务地址';
COMMENT ON COLUMN public.janus_providers.status IS '服务状态(1=启用,0=停用)';
COMMENT ON COLUMN public.janus_providers.created_at IS '创建者';
COMMENT ON COLUMN public.janus_providers.created_time IS '创建时间';
COMMENT ON COLUMN public.janus_providers.updated_at IS '修改者';
COMMENT ON COLUMN public.janus_providers.updated_time IS '修改时间';
COMMENT ON COLUMN public.janus_providers.del_flag IS '删除标志(1=已删除,0=未删除)';
CREATE TABLE public.janus_models
(
id bigint NOT NULL,
provider_id bigint NOT NULL,
name varchar not null,
model_type varchar not null,
status int4 default 0 not null,
created_at bigint NOT NULL,
created_time timestamp NOT NULL,
updated_at bigint NULL,
updated_time timestamp NULL,
del_flag int4 DEFAULT 0 NOT NULL,
CONSTRAINT janus_models_pk PRIMARY KEY (id)
);
COMMENT ON TABLE public.janus_models IS '供应商下可用的AI模型';
COMMENT ON COLUMN public.janus_models.id IS '主键ID';
COMMENT ON COLUMN public.janus_models.provider_id IS '供应商ID';
COMMENT ON COLUMN public.janus_models.name IS '模型名称';
COMMENT ON COLUMN public.janus_models.model_type IS '模型类型(chat/completion/embedding/image)';
COMMENT ON COLUMN public.janus_models.status IS '模型状态(1=启用,0=停用)';
COMMENT ON COLUMN public.janus_models.created_at IS '创建者';
COMMENT ON COLUMN public.janus_models.created_time IS '创建时间';
COMMENT ON COLUMN public.janus_models.updated_at IS '修改者';
COMMENT ON COLUMN public.janus_models.updated_time IS '修改时间';
COMMENT ON COLUMN public.janus_models.del_flag IS '删除标志(1=已删除,0=未删除)';
CREATE TABLE public.janus_channels
(
id bigint NOT NULL,
name varchar NOT NULL,
provider_id bigint NOT NULL,
model_id bigint NULL,
weight int4 DEFAULT 1 NOT NULL,
priority int4 DEFAULT 1 NOT NULL,
rate_limit int4 DEFAULT 60 NOT NULL,
status int4 DEFAULT 0 NULL,
created_at bigint NOT NULL,
created_time timestamp NOT NULL,
updated_at bigint NULL,
updated_time timestamp NULL,
del_flag int4 DEFAULT 0 NOT NULL,
CONSTRAINT janus_channels_pk PRIMARY KEY (id)
);
COMMENT ON TABLE public.janus_channels IS '路由转发通道(连接供应商和模型,支持权重和优先级)';
COMMENT ON COLUMN public.janus_channels.id IS '主键ID';
COMMENT ON COLUMN public.janus_channels.name IS '通道名称';
COMMENT ON COLUMN public.janus_channels.provider_id IS '供应商ID';
COMMENT ON COLUMN public.janus_channels.model_id IS '模型IDNULL表示供应商级别通道)';
COMMENT ON COLUMN public.janus_channels.weight IS '负载均衡权重';
COMMENT ON COLUMN public.janus_channels.priority IS '优先级(数字越小越高)';
COMMENT ON COLUMN public.janus_channels.rate_limit IS '每分钟请求数上限';
COMMENT ON COLUMN public.janus_channels.status IS '通道状态(1=启用,0=停用)';
COMMENT ON COLUMN public.janus_channels.created_at IS '创建者';
COMMENT ON COLUMN public.janus_channels.created_time IS '创建时间';
COMMENT ON COLUMN public.janus_channels.updated_at IS '修改者';
COMMENT ON COLUMN public.janus_channels.updated_time IS '修改时间';
COMMENT ON COLUMN public.janus_channels.del_flag IS '删除标志(1=已删除,0=未删除)';
CREATE TABLE public.janus_api_keys
(
id bigint NOT NULL,
key varchar NOT NULL,
name varchar NOT NULL,
rate_limit int4 DEFAULT 60 NOT NULL,
status int4 DEFAULT 0 NULL,
expired_at timestamp NULL,
created_at bigint NOT NULL,
created_time timestamp NOT NULL,
updated_at bigint NULL,
updated_time timestamp NULL,
del_flag int4 DEFAULT 0 NOT NULL,
CONSTRAINT janus_api_keys_pk PRIMARY KEY (id)
);
COMMENT ON TABLE public.janus_api_keys IS '调用方认证密钥';
COMMENT ON COLUMN public.janus_api_keys.id IS '主键ID';
COMMENT ON COLUMN public.janus_api_keys.key IS 'API密钥字符串';
COMMENT ON COLUMN public.janus_api_keys.name IS '密钥名称/用途描述';
COMMENT ON COLUMN public.janus_api_keys.rate_limit IS '每分钟请求数上限';
COMMENT ON COLUMN public.janus_api_keys.status IS '密钥状态(1=启用,0=停用)';
COMMENT ON COLUMN public.janus_api_keys.expired_at IS '过期时间(NULL=永不过期)';
COMMENT ON COLUMN public.janus_api_keys.created_at IS '创建者';
COMMENT ON COLUMN public.janus_api_keys.created_time IS '创建时间';
COMMENT ON COLUMN public.janus_api_keys.updated_at IS '修改者';
COMMENT ON COLUMN public.janus_api_keys.updated_time IS '修改时间';
COMMENT ON COLUMN public.janus_api_keys.del_flag IS '删除标志(1=已删除,0=未删除)'