entc/gen: add support for referencing fks to existing fields (#1289)

This commit is contained in:
Ariel Mashraki
2021-03-01 22:57:32 +02:00
committed by GitHub
parent 31bee10942
commit 0d0a93b95f
90 changed files with 6936 additions and 327 deletions

View File

@@ -37,9 +37,8 @@ var (
PrimaryKey: []*schema.Column{StreetsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "streets_cities_streets",
Columns: []*schema.Column{StreetsColumns[2]},
Symbol: "streets_cities_streets",
Columns: []*schema.Column{StreetsColumns[2]},
RefColumns: []*schema.Column{CitiesColumns[0]},
OnDelete: schema.SetNull,
},

View File

@@ -381,7 +381,8 @@ func (sq *StreetQuery) sqlAll(ctx context.Context) ([]*Street, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Street)
for i := range nodes {
if fk := nodes[i].city_streets; fk != nil {
fk := nodes[i].city_streets
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -49,16 +49,14 @@ var (
PrimaryKey: []*schema.Column{GroupUsersColumns[0], GroupUsersColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "group_users_group_id",
Columns: []*schema.Column{GroupUsersColumns[0]},
Symbol: "group_users_group_id",
Columns: []*schema.Column{GroupUsersColumns[0]},
RefColumns: []*schema.Column{GroupsColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "group_users_user_id",
Columns: []*schema.Column{GroupUsersColumns[1]},
Symbol: "group_users_user_id",
Columns: []*schema.Column{GroupUsersColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},

View File

@@ -37,16 +37,14 @@ var (
PrimaryKey: []*schema.Column{UserFriendsColumns[0], UserFriendsColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "user_friends_user_id",
Columns: []*schema.Column{UserFriendsColumns[0]},
Symbol: "user_friends_user_id",
Columns: []*schema.Column{UserFriendsColumns[0]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "user_friends_friend_id",
Columns: []*schema.Column{UserFriendsColumns[1]},
Symbol: "user_friends_friend_id",
Columns: []*schema.Column{UserFriendsColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},

View File

@@ -37,16 +37,14 @@ var (
PrimaryKey: []*schema.Column{UserFollowingColumns[0], UserFollowingColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "user_following_user_id",
Columns: []*schema.Column{UserFollowingColumns[0]},
Symbol: "user_following_user_id",
Columns: []*schema.Column{UserFollowingColumns[0]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "user_following_follower_id",
Columns: []*schema.Column{UserFollowingColumns[1]},
Symbol: "user_following_follower_id",
Columns: []*schema.Column{UserFollowingColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},

View File

@@ -25,9 +25,8 @@ var (
PrimaryKey: []*schema.Column{PetsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "pets_users_pets",
Columns: []*schema.Column{PetsColumns[2]},
Symbol: "pets_users_pets",
Columns: []*schema.Column{PetsColumns[2]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},

View File

@@ -381,7 +381,8 @@ func (pq *PetQuery) sqlAll(ctx context.Context) ([]*Pet, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Pet)
for i := range nodes {
if fk := nodes[i].user_pets; fk != nil {
fk := nodes[i].user_pets
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -25,9 +25,8 @@ var (
PrimaryKey: []*schema.Column{NodesColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "nodes_nodes_children",
Columns: []*schema.Column{NodesColumns[2]},
Symbol: "nodes_nodes_children",
Columns: []*schema.Column{NodesColumns[2]},
RefColumns: []*schema.Column{NodesColumns[0]},
OnDelete: schema.SetNull,
},

View File

@@ -417,7 +417,8 @@ func (nq *NodeQuery) sqlAll(ctx context.Context) ([]*Node, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Node)
for i := range nodes {
if fk := nodes[i].node_children; fk != nil {
fk := nodes[i].node_children
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -381,7 +381,8 @@ func (cq *CardQuery) sqlAll(ctx context.Context) ([]*Card, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Card)
for i := range nodes {
if fk := nodes[i].user_card; fk != nil {
fk := nodes[i].user_card
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -26,9 +26,8 @@ var (
PrimaryKey: []*schema.Column{CardsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "cards_users_card",
Columns: []*schema.Column{CardsColumns[3]},
Symbol: "cards_users_card",
Columns: []*schema.Column{CardsColumns[3]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},

View File

@@ -26,9 +26,8 @@ var (
PrimaryKey: []*schema.Column{UsersColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "users_users_spouse",
Columns: []*schema.Column{UsersColumns[3]},
Symbol: "users_users_spouse",
Columns: []*schema.Column{UsersColumns[3]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},

View File

@@ -380,7 +380,8 @@ func (uq *UserQuery) sqlAll(ctx context.Context) ([]*User, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*User)
for i := range nodes {
if fk := nodes[i].user_spouse; fk != nil {
fk := nodes[i].user_spouse
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -25,9 +25,8 @@ var (
PrimaryKey: []*schema.Column{NodesColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "nodes_nodes_next",
Columns: []*schema.Column{NodesColumns[2]},
Symbol: "nodes_nodes_next",
Columns: []*schema.Column{NodesColumns[2]},
RefColumns: []*schema.Column{NodesColumns[0]},
OnDelete: schema.SetNull,
},

View File

@@ -417,7 +417,8 @@ func (nq *NodeQuery) sqlAll(ctx context.Context) ([]*Node, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Node)
for i := range nodes {
if fk := nodes[i].node_next; fk != nil {
fk := nodes[i].node_next
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -425,7 +425,8 @@ func (gq *GroupQuery) sqlAll(ctx context.Context) ([]*Group, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Group)
for i := range nodes {
if fk := nodes[i].group_tenant; fk != nil {
fk := nodes[i].group_tenant
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -25,9 +25,8 @@ var (
PrimaryKey: []*schema.Column{GroupsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "groups_tenants_tenant",
Columns: []*schema.Column{GroupsColumns[2]},
Symbol: "groups_tenants_tenant",
Columns: []*schema.Column{GroupsColumns[2]},
RefColumns: []*schema.Column{TenantsColumns[0]},
OnDelete: schema.SetNull,
},
@@ -59,9 +58,8 @@ var (
PrimaryKey: []*schema.Column{UsersColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "users_tenants_tenant",
Columns: []*schema.Column{UsersColumns[3]},
Symbol: "users_tenants_tenant",
Columns: []*schema.Column{UsersColumns[3]},
RefColumns: []*schema.Column{TenantsColumns[0]},
OnDelete: schema.SetNull,
},
@@ -79,16 +77,14 @@ var (
PrimaryKey: []*schema.Column{UserGroupsColumns[0], UserGroupsColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "user_groups_user_id",
Columns: []*schema.Column{UserGroupsColumns[0]},
Symbol: "user_groups_user_id",
Columns: []*schema.Column{UserGroupsColumns[0]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "user_groups_group_id",
Columns: []*schema.Column{UserGroupsColumns[1]},
Symbol: "user_groups_group_id",
Columns: []*schema.Column{UserGroupsColumns[1]},
RefColumns: []*schema.Column{GroupsColumns[0]},
OnDelete: schema.Cascade,
},

View File

@@ -425,7 +425,8 @@ func (uq *UserQuery) sqlAll(ctx context.Context) ([]*User, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*User)
for i := range nodes {
if fk := nodes[i].user_tenant; fk != nil {
fk := nodes[i].user_tenant
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -381,7 +381,8 @@ func (cq *CarQuery) sqlAll(ctx context.Context) ([]*Car, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Car)
for i := range nodes {
if fk := nodes[i].user_cars; fk != nil {
fk := nodes[i].user_cars
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -26,9 +26,8 @@ var (
PrimaryKey: []*schema.Column{CarsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "cars_users_cars",
Columns: []*schema.Column{CarsColumns[3]},
Symbol: "cars_users_cars",
Columns: []*schema.Column{CarsColumns[3]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},
@@ -71,16 +70,14 @@ var (
PrimaryKey: []*schema.Column{GroupUsersColumns[0], GroupUsersColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "group_users_group_id",
Columns: []*schema.Column{GroupUsersColumns[0]},
Symbol: "group_users_group_id",
Columns: []*schema.Column{GroupUsersColumns[0]},
RefColumns: []*schema.Column{GroupsColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "group_users_user_id",
Columns: []*schema.Column{GroupUsersColumns[1]},
Symbol: "group_users_user_id",
Columns: []*schema.Column{GroupUsersColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},

View File

@@ -482,7 +482,8 @@ func (gq *GroupQuery) sqlAll(ctx context.Context) ([]*Group, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Group)
for i := range nodes {
if fk := nodes[i].group_admin; fk != nil {
fk := nodes[i].group_admin
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -25,9 +25,8 @@ var (
PrimaryKey: []*schema.Column{GroupsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "groups_users_admin",
Columns: []*schema.Column{GroupsColumns[2]},
Symbol: "groups_users_admin",
Columns: []*schema.Column{GroupsColumns[2]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},
@@ -46,9 +45,8 @@ var (
PrimaryKey: []*schema.Column{PetsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "pets_users_pets",
Columns: []*schema.Column{PetsColumns[2]},
Symbol: "pets_users_pets",
Columns: []*schema.Column{PetsColumns[2]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},
@@ -79,16 +77,14 @@ var (
PrimaryKey: []*schema.Column{GroupUsersColumns[0], GroupUsersColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "group_users_group_id",
Columns: []*schema.Column{GroupUsersColumns[0]},
Symbol: "group_users_group_id",
Columns: []*schema.Column{GroupUsersColumns[0]},
RefColumns: []*schema.Column{GroupsColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "group_users_user_id",
Columns: []*schema.Column{GroupUsersColumns[1]},
Symbol: "group_users_user_id",
Columns: []*schema.Column{GroupUsersColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},
@@ -106,16 +102,14 @@ var (
PrimaryKey: []*schema.Column{PetFriendsColumns[0], PetFriendsColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "pet_friends_pet_id",
Columns: []*schema.Column{PetFriendsColumns[0]},
Symbol: "pet_friends_pet_id",
Columns: []*schema.Column{PetFriendsColumns[0]},
RefColumns: []*schema.Column{PetsColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "pet_friends_friend_id",
Columns: []*schema.Column{PetFriendsColumns[1]},
Symbol: "pet_friends_friend_id",
Columns: []*schema.Column{PetFriendsColumns[1]},
RefColumns: []*schema.Column{PetsColumns[0]},
OnDelete: schema.Cascade,
},
@@ -133,16 +127,14 @@ var (
PrimaryKey: []*schema.Column{UserFriendsColumns[0], UserFriendsColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "user_friends_user_id",
Columns: []*schema.Column{UserFriendsColumns[0]},
Symbol: "user_friends_user_id",
Columns: []*schema.Column{UserFriendsColumns[0]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "user_friends_friend_id",
Columns: []*schema.Column{UserFriendsColumns[1]},
Symbol: "user_friends_friend_id",
Columns: []*schema.Column{UserFriendsColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.Cascade,
},

View File

@@ -482,7 +482,8 @@ func (pq *PetQuery) sqlAll(ctx context.Context) ([]*Pet, error) {
ids := make([]int, 0, len(nodes))
nodeids := make(map[int][]*Pet)
for i := range nodes {
if fk := nodes[i].user_pets; fk != nil {
fk := nodes[i].user_pets
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}