From 2502c209b33636346c9b5018e33d202164bed0dd Mon Sep 17 00:00:00 2001 From: Serhii Filonenko Date: Fri, 14 Mar 2025 12:15:11 +0200 Subject: [PATCH 1/2] HCK-10312: fix generating foreign key constraint for cross-schema relationships --- forward_engineering/helpers/foreignKeyHelper.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forward_engineering/helpers/foreignKeyHelper.js b/forward_engineering/helpers/foreignKeyHelper.js index d4db9fb..a44695d 100644 --- a/forward_engineering/helpers/foreignKeyHelper.js +++ b/forward_engineering/helpers/foreignKeyHelper.js @@ -52,13 +52,17 @@ const getForeignKeyHashTable = ({ ); return relationships.reduce((hashTable, relationship) => { + if (!relatedSchemas[relationship.parentCollection]) { + return hashTable; + } + if (!hashTable[relationship.childCollection]) { hashTable[relationship.childCollection] = {}; } const constraintName = relationship.name; const parentDifferentSchemaName = - replaceSpaceWithUnderscore(relatedSchemas[relationship.parentCollection]?.bucketName) || ''; + replaceSpaceWithUnderscore(relatedSchemas[relationship.parentCollection].bucketName) || ''; const parentTableData = getTab(0, entityData[relationship.parentCollection]); const parentTableSingleName = replaceSpaceWithUnderscore( From f18e702df36edbb6c346a587a724d8f33ba7c99c Mon Sep 17 00:00:00 2001 From: Serhii Filonenko Date: Fri, 14 Mar 2025 18:19:00 +0200 Subject: [PATCH 2/2] HCK-10312: fix foreign key generation --- forward_engineering/helpers/foreignKeyHelper.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/forward_engineering/helpers/foreignKeyHelper.js b/forward_engineering/helpers/foreignKeyHelper.js index a44695d..7ddc5e6 100644 --- a/forward_engineering/helpers/foreignKeyHelper.js +++ b/forward_engineering/helpers/foreignKeyHelper.js @@ -52,21 +52,17 @@ const getForeignKeyHashTable = ({ ); return relationships.reduce((hashTable, relationship) => { - if (!relatedSchemas[relationship.parentCollection]) { - return hashTable; - } - if (!hashTable[relationship.childCollection]) { hashTable[relationship.childCollection] = {}; } const constraintName = relationship.name; const parentDifferentSchemaName = - replaceSpaceWithUnderscore(relatedSchemas[relationship.parentCollection].bucketName) || ''; + replaceSpaceWithUnderscore(relatedSchemas[relationship.parentCollection]?.bucketName) || ''; const parentTableData = getTab(0, entityData[relationship.parentCollection]); const parentTableSingleName = replaceSpaceWithUnderscore( - getName(parentTableData) || relatedSchemas[relationship.parentCollection].collectionName, + getName(parentTableData) || relatedSchemas[relationship.parentCollection]?.collectionName, ) || ''; const parentTableName = parentDifferentSchemaName ? `${parentDifferentSchemaName}.${parentTableSingleName}` @@ -74,7 +70,7 @@ const getForeignKeyHashTable = ({ const childTableData = getTab(0, entityData[relationship.childCollection]); const childTableName = replaceSpaceWithUnderscore( - getName(childTableData) || relatedSchemas[relationship.childCollection].collectionName, + getName(childTableData) || relatedSchemas[relationship.childCollection]?.collectionName, ) || ''; const groupKey = parentTableName + constraintName; const childFieldActivated = relationship.childField.reduce((isActivated, field) => {