From 38002e6d2e841bc820c6b527519eec5abfcaaa31 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Thu, 14 Nov 2019 09:45:55 -0800 Subject: [PATCH] entc/gen: use custom id type in join table (#165) Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/165 Only when it's provided by the use explicitly Reviewed By: alexsn Differential Revision: D18506319 fbshipit-source-id: 4cc0bb2c3bbb26f8b27b12e4aa01407fb604928d --- entc/gen/graph.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/entc/gen/graph.go b/entc/gen/graph.go index 3bc27f3d4..b5e2d5d52 100644 --- a/entc/gen/graph.go +++ b/entc/gen/graph.go @@ -331,9 +331,14 @@ func (g *Graph) Tables() (all []*schema.Table) { }) case M2M: t1, t2 := tables[n.Table()], tables[e.Type.Table()] - fk1, fk2 := n.ID, e.Type.ID - c1 := &schema.Column{Name: e.Rel.Columns[0], Type: fk1.Type.Type} - c2 := &schema.Column{Name: e.Rel.Columns[1], Type: fk2.Type.Type} + c1 := &schema.Column{Name: e.Rel.Columns[0], Type: field.TypeInt} + if ref := n.ID; ref.UserDefined { + c1.Type = ref.Type.Type + } + c2 := &schema.Column{Name: e.Rel.Columns[1], Type: field.TypeInt} + if ref := e.Type.ID; ref.UserDefined { + c2.Type = ref.Type.Type + } all = append(all, &schema.Table{ Name: e.Rel.Table, Columns: []*schema.Column{c1, c2},