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

@@ -418,7 +418,8 @@ func (bq *BlobQuery) sqlAll(ctx context.Context) ([]*Blob, error) {
ids := make([]uuid.UUID, 0, len(nodes))
nodeids := make(map[uuid.UUID][]*Blob)
for i := range nodes {
if fk := nodes[i].blob_parent; fk != nil {
fk := nodes[i].blob_parent
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([]string, 0, len(nodes))
nodeids := make(map[string][]*Car)
for i := range nodes {
if fk := nodes[i].pet_cars; fk != nil {
fk := nodes[i].pet_cars
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -25,9 +25,8 @@ var (
PrimaryKey: []*schema.Column{BlobsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "blobs_blobs_parent",
Columns: []*schema.Column{BlobsColumns[2]},
Symbol: "blobs_blobs_parent",
Columns: []*schema.Column{BlobsColumns[2]},
RefColumns: []*schema.Column{BlobsColumns[0]},
OnDelete: schema.SetNull,
},
@@ -48,9 +47,8 @@ var (
PrimaryKey: []*schema.Column{CarsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "cars_pets_cars",
Columns: []*schema.Column{CarsColumns[4]},
Symbol: "cars_pets_cars",
Columns: []*schema.Column{CarsColumns[4]},
RefColumns: []*schema.Column{PetsColumns[0]},
OnDelete: schema.SetNull,
},
@@ -115,16 +113,14 @@ var (
PrimaryKey: []*schema.Column{PetsColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "pets_pets_best_friend",
Columns: []*schema.Column{PetsColumns[1]},
Symbol: "pets_pets_best_friend",
Columns: []*schema.Column{PetsColumns[1]},
RefColumns: []*schema.Column{PetsColumns[0]},
OnDelete: schema.SetNull,
},
{
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,
},
@@ -142,9 +138,8 @@ var (
PrimaryKey: []*schema.Column{UsersColumns[0]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "users_users_children",
Columns: []*schema.Column{UsersColumns[1]},
Symbol: "users_users_children",
Columns: []*schema.Column{UsersColumns[1]},
RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.SetNull,
},
@@ -162,16 +157,14 @@ var (
PrimaryKey: []*schema.Column{BlobLinksColumns[0], BlobLinksColumns[1]},
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "blob_links_blob_id",
Columns: []*schema.Column{BlobLinksColumns[0]},
Symbol: "blob_links_blob_id",
Columns: []*schema.Column{BlobLinksColumns[0]},
RefColumns: []*schema.Column{BlobsColumns[0]},
OnDelete: schema.Cascade,
},
{
Symbol: "blob_links_link_id",
Columns: []*schema.Column{BlobLinksColumns[1]},
Symbol: "blob_links_link_id",
Columns: []*schema.Column{BlobLinksColumns[1]},
RefColumns: []*schema.Column{BlobsColumns[0]},
OnDelete: schema.Cascade,
},
@@ -189,16 +182,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,
},
@@ -216,16 +207,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,
},

View File

@@ -467,7 +467,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])
}
@@ -585,7 +586,8 @@ func (pq *PetQuery) sqlAll(ctx context.Context) ([]*Pet, error) {
ids := make([]string, 0, len(nodes))
nodeids := make(map[string][]*Pet)
for i := range nodes {
if fk := nodes[i].pet_best_friend; fk != nil {
fk := nodes[i].pet_best_friend
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}

View File

@@ -531,7 +531,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_children; fk != nil {
fk := nodes[i].user_children
if fk != nil {
ids = append(ids, *fk)
nodeids[*fk] = append(nodeids[*fk], nodes[i])
}