You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在drizzle-orm中内省关联关系?如何获取关联配置?

在Drizzle-ORM中内省关联关系的实现方法

可以实现内省关联关系。Drizzle-ORM会在定义的关联对象中挂载内部元数据,我们可以通过读取这些元数据来提取关联配置。

实现函数

function get_relations(relationsObj) {
  return Object.entries(relationsObj.__drizzle_relations).map(([name, relation]) => ({
    name,
    type: relation.type,
    table: relation.refTable,
    config: {
      fields: relation.fields,
      references: relation.references
    }
  }));
}

使用示例

调用该函数传入你的关联对象:

const relationsConfig = get_relations(externalUsersRelations);

返回的结构将符合需求:

[
  {
    name: 'users',
    type: 'one',
    table: users,
    config: {
      fields: [external_users.user_id],
      references: [users.id]
    }
  }
]

说明

Drizzle-ORM在生成关联对象时,会自动添加__drizzle_relations元数据属性,其中存储了所有关联的类型、关联表、字段映射等核心配置。这个方法直接读取该内部属性,实现起来简洁高效。需要注意的是,这依赖于Drizzle的内部实现,若后续框架版本调整元数据结构,可能需要同步修改函数逻辑。

内容的提问来源于stack exchange,提问作者thebjorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:13:17