one to many same table diff column

export const users = pgTable('users', {
  id: bigserial('id', { mode: 'bigint' }).primaryKey()
})

export const usersRelations = relations(users, ({ many, one }) => ({
  froms: many(explorers, { relationName: 'froms' }),
  tos: many(explorers, { relationName: 'tos' })
}))

export const explorers = pgTable('explorers', {
  id: uuid('id')
    .primaryKey()
    .default(sql`gen_random_uuid()`),
  fromId: bigserial('from_id', { mode: 'bigint' }).references(
    () => users.id
  ),
  toId: bigserial('to_id', { mode: 'bigint' }).references(() => users.id),
  createdAt: timestamp('created_at').defaultNow()
})

export const explorersRelations = relations(explorers, ({ one, many }) => ({
  from: one(users, {
    references: [users.id],
    fields: [explorers.fromId]
  }),
  to: one(users, {
    references: [users.id],
    fields: [explorers.toId]
  })
}))


db.query.users.findMany({
  with: {
    froms: true,
    tos: true
  }
})

// error: There is not enough information to infer relation


is there any possible solution to infer the relation in usersRelations?
Was this page helpful?