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

启动Drizzle Studio报错:无法推断restaurantsTable.categories关系

解决Drizzle Studio关系推断错误:Error: There is not enough information to infer relation "restaurantsTable.categories"

你的错误根源是categoryTable的关联关系配置错误:categories表中的restaurant_id字段本应关联restaurants表的id,但你在categoryTableRelations里错误地将其关联到了menuTable,导致Drizzle无法识别restaurants和categories之间的关联关系,进而触发推断失败的错误。

修正后的schema.ts关键代码

export const restaurantsTable = pgTable("restaurants", {
  id: serial("id").primaryKey(),
  [...]
});

export const restaurantTableRelations = relations(restaurantsTable, ({ one, many }) => ({
  menu: many(menuTable),
  categories: many(categoryTable, { relationName: 'restaurant_categories' }),
}));

export const categoryTable = pgTable("categories", {
  id: serial("id").primaryKey(),
  // 显式添加外键引用,帮助Drizzle明确关联关系
  restaurant_id: integer('restaurant_id').notNull().references(() => restaurantsTable.id),
});

export const categoryTableRelations = relations(categoryTable, ({ one }) => ({
  restaurant: one(restaurantsTable, {
    fields: [categoryTable.restaurant_id],
    references: [restaurantsTable.id],
    // 关系名必须和restaurantTableRelations中的定义完全一致
    relationName: 'restaurant_categories'
  })
}));

核心改动说明

  • 给categoryTable的restaurant_id字段添加显式外键约束,明确关联restaurantsTable的主键id
  • 将categoryTableRelations的关联目标从menuTable改为restaurantsTable,匹配数据逻辑
  • 确保双向关联的relationName完全一致,Drizzle依靠这个标识识别同一组关联关系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:47:36