核心数据模型速查
本文从 myapp/models/ 派生,列出主要 ORM 类、对应数据库表名与关键关系。
字段说明只摘核心,完整字段/类型/默认值以 myapp/models/*.py 源码为准(模型字段多带中文 comment)。
数据库选型与迁移见『04-运维管理』『02-部署安装』段;模型与 REST API 的对应见本段 核心API速查.md。
1. 模型清单(类 → 表名 → 文件 → 用途)
| ORM 类 | 表名 | 文件 | 用途 |
|---|---|---|---|
Project |
project |
model_team.py |
项目组(多租户中枢),type 区分 org / job_template / model |
Project_User |
project_user |
model_team.py |
项目组-用户成员桥接(多对多) |
UserAttribute |
user_attribute |
user_attributes.py |
用户扩展属性 |
Repository |
repository |
model_job.py |
镜像仓库(凭据) |
Images |
images |
model_job.py |
Docker 镜像 |
Job_Template |
job_template |
model_job.py |
任务模板(pipeline 算子) |
Pipeline |
pipeline |
model_job.py |
任务流(DAG) |
Task |
task |
model_job.py |
任务流中的单个任务节点 |
RunHistory |
run |
model_job.py |
定时调度运行记录 |
Workflow |
workflow |
model_job.py |
argo workflow 运行实例(继承 Crd) |
Docker |
docker |
model_docker.py |
在线镜像构建(调试容器) |
Notebook |
notebook |
model_notebook.py |
在线 IDE(Jupyter/VSCode 等) |
Service |
service |
model_serving.py |
在线服务(内部服务) |
InferenceService |
inferenceservice |
model_serving.py |
推理服务 |
Dataset |
dataset |
model_dataset.py |
数据集(全局资产,按版本/分区管理) |
Aihub |
aihub |
model_aihub.py |
AIHub 模型市场条目 |
Chat |
chat |
model_chat.py |
对话智能体配置 |
ChatLog |
chat_log |
model_chat.py |
对话记录 |
Ingress |
ingress |
model_llm_ingress.py |
LLM 网关入口/路由 |
ETL_Pipeline |
etl_pipeline |
model_etl_pipeline.py |
ETL 任务流 |
ETL_Pipeline_Run |
etl_pipeline_run |
model_etl_pipeline.py |
ETL 任务流运行记录 |
ETL_Task |
etl_task |
model_etl_pipeline.py |
ETL 任务节点 |
Service_Pipeline |
service_pipeline |
model_service_pipeline.py |
服务编排流 |
NNI |
nni |
model_nni.py |
超参搜索实验 |
Training_Model |
model |
model_train_model.py |
训练模型登记 |
Model_define |
model_define |
model_model_define.py |
模型定义 |
Metadata_table |
metadata_table |
model_metadata.py |
库表元数据 |
Metadata_metric |
metadata_metric |
model_metadata_metric.py |
指标元数据 |
Dimension_table |
dimension |
model_dimension.py |
维表 |
Node |
node |
model_node.py |
集群机器节点 |
Storage |
storage |
model_storage.py |
存储资源 |
Pod |
pod |
model_pod.py |
Pod 记录 |
RentalInstance |
rental_instance |
model_rental_instance.py |
算力租赁实例 |
Bill |
bill |
model_bill.py |
账单 |
Invoice |
invoice |
model_invoice.py |
发票 |
Approval |
approval |
model_approval.py |
审批单 |
Message |
message |
model_message.py |
站内消息 |
Log |
logs |
log.py |
操作日志 |
Sqllab_Query |
sqlab_query |
model_sqllab_query.py |
SQL 查询记录(注意表名拼写为 sqlab_query) |
Favorite |
favorite |
favorite.py |
收藏 |
说明:用户表
ab_user是 Flask-AppBuilder 内置用户表(在ab_*系列权限表中),不在myapp/models/业务模型里,但被大量模型外键引用。
2. 关系图(以 Project 为多租户中枢、ab_user 为用户中枢)
三条主链(已核对外键):
Project (project.id)
├─ Project_User.project_id ──┐ 项目组-用户多对多桥接
│ Project_User.user_id ─→ ab_user.id ┘
├─ Pipeline.project_id ─→ Task.pipeline_id ─→ RunHistory.pipeline_id
│ Task.job_template_id ─→ Job_Template.id
├─ Job_Template.project_id Job_Template.images_id ─→ Images.id
│ Images.repository_id ─→ Repository.id(Images 无 project_id)
├─ Notebook.project_id
├─ Service.project_id / InferenceService.project_id
├─ NNI.project_id / Docker.project_id / Pod.project_id
├─ Model_define.project_id / Training_Model.project_id
├─ Service_Pipeline.project_id
└─ ETL_Pipeline.project_id ─→ ETL_Pipeline_Run.pipeline_id (FK → etl_pipeline.id)
ETL_Task.etl_pipeline_id (普通整型列,见下注)
ab_user (ab_user.id)
├─ Log.user_id / Approval.user_id / Bill.user_id / Pod.user_id / UserAttribute.user_id
└─ 多数模型经 AuditMixinNullable 关联 created_by_fk / changed_by_fk ─→ ab_user.id
已核对的外键(ForeignKey(...)):
Project_User.project_id → project.id、Project_User.user_id → ab_user.idPipeline.project_id → project.id;Task.pipeline_id → pipeline.id、Task.job_template_id → job_template.id;RunHistory.pipeline_id → pipeline.idJob_Template.project_id → project.id、Job_Template.images_id → images.idImages.repository_id → repository.id(注意:Images表无project_id外键,镜像不直属项目组,经Job_Template.images_id间接关联)Notebook/Service/InferenceService/NNI/Docker/Model_define/Training_Model/Service_Pipeline.project_id → project.idPod.project_id → project.id、Pod.user_id → ab_user.idETL_Pipeline.project_id → project.id、ETL_Pipeline_Run.pipeline_id → etl_pipeline.idLog.user_id、Approval.user_id、Bill.user_id、UserAttribute.user_id → ab_user.id
⚠️ 注意:
ETL_Task.etl_pipeline_id是普通整型列、不是外键(FK 定义在myapp/models/model_etl_pipeline.py:173附近被注释),逻辑上指向etl_pipeline.id。Dataset表不含project_id,是全局/共享数据资产目录。
3. 公共基类与混入
多数模型同时混入以下基类(见 myapp/models/base.py、myapp/models/helpers.py):
MyappModelBase(base.py):提供共享的label_columns字典(列名 → 中文显示名,前端/列表展示用)和get_default_node_selector()(按 GPU 申请推导节点调度标签)等公共能力。该基类仅含上述两项(myapp/models/base.py共 339 行,唯一方法为base.py:316的get_default_node_selector),无 lab/html 展示方法。AuditMixinNullable(helpers.py:277,继承 FAB 的AuditMixin):提供审计列created_on、changed_on(自动更新),以及created_by_fk、changed_by_fk(外键 →ab_user.id,默认取当前用户),并暴露created_by/changed_by关系与creator/changed_by_/modified等属性。ImportMixin(helpers.py:31):导入/导出支持,被Pipeline、Task、ETL_Task、Model_define、Service_Pipeline等混入。
本速查为代码派生总览,字段 / 关系以 myapp/models 源码为准,仅供导航。