From 57718ddda066d0262c48cd335b8bacc9ac3f257b Mon Sep 17 00:00:00 2001 From: Alik Rakhmonov Date: Fri, 19 Dec 2025 15:48:11 +0100 Subject: [PATCH 1/2] HCK-14070: References require DB name if it exists --- .../alterForeignKeyHelper.js | 14 +++++++++----- .../hiveHelpers/helpers/foreignKeyHelper.js | 19 ++++++++----------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/alterForeignKeyHelper.js b/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/alterForeignKeyHelper.js index 8c55bf4..2af4027 100644 --- a/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/alterForeignKeyHelper.js +++ b/forward_engineering/hiveHelpers/helpers/alterScriptHelpers/alterForeignKeyHelper.js @@ -3,9 +3,15 @@ const { prepareName, commentDeactivatedStatements } = require('../generalHelper' const templates = require('./config/templates'); const { getItems } = require('./common'); +const { CONSTRAINT_POSTFIX } = require('../constants'); -const getRelationshipName = relationship => { - return relationship.role.code || relationship.role.name; +const getRelationshipName = (relationship, parentTableName, childTableName) => { + const compMod = relationship.role.compMod; + const name = compMod.code?.new || compMod.name?.new || relationship.role.code || relationship.role.name; + if (name) { + return name; + } + return prepareName([parentTableName, childTableName, CONSTRAINT_POSTFIX.foreignKey].filter(Boolean).join('_')); }; const getFullParentTableName = relationship => { @@ -30,8 +36,7 @@ const getAddSingleForeignKeyScript = provider => relationship => { const parentTableName = getFullParentTableName(relationship); const childTableName = getFullChildTableName(relationship); - const relationshipName = compMod.code?.new || compMod.name?.new || getRelationshipName(relationship) || ''; - const constraintName = prepareName(relationshipName); + const constraintName = getRelationshipName(relationship, parentTableName, childTableName); const childColumns = compMod.child.collection.fkFields.map(field => prepareName(field.name)); const parentColumns = compMod.parent.collection.fkFields.map(field => prepareName(field.name)); const disableNoValidate = relationship.role?.compMod?.customProperties?.new?.disableNoValidate; @@ -53,7 +58,6 @@ const canRelationshipBeAdded = relationship => { return false; } return [ - compMod.code?.new || compMod.name?.new || getRelationshipName(relationship), compMod.parent?.bucket, compMod.parent?.collection, compMod.parent?.collection?.fkFields?.length, diff --git a/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js b/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js index ccca33b..babbe31 100644 --- a/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js +++ b/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js @@ -57,29 +57,26 @@ const getForeignKeyHashTable = ({ } const constraintName = relationship.code || relationship.name; - const parentDifferentSchemaName = prepareName(relatedSchemas[relationship.parentCollection]?.bucketName) || ''; + const parentSchema = + jsonSchemas[relationship.parentCollection] ?? relatedSchemas[relationship.parentCollection]; + const childSchema = jsonSchemas[relationship.childCollection] ?? relatedSchemas[relationship.childCollection]; + const parentDifferentSchemaName = prepareName(parentSchema?.bucketName) || ''; const parentTableData = getTab(0, entityData[relationship.parentCollection]); - const parentTableSingleName = - prepareName(getName(parentTableData) || relatedSchemas[relationship.parentCollection]?.collectionName) || - ''; + const parentTableSingleName = prepareName(getName(parentTableData) || parentSchema?.collectionName) || ''; const parentTableName = parentDifferentSchemaName ? `${parentDifferentSchemaName}.${parentTableSingleName}` : parentTableSingleName; const childTableData = getTab(0, entityData[relationship.childCollection]); - const childTableName = - prepareName(getName(childTableData) || relatedSchemas[relationship.childCollection]?.collectionName) || ''; + const childTableName = prepareName(getName(childTableData) || childSchema?.collectionName) || ''; const groupKey = parentTableName + constraintName; const childFieldActivated = relationship.childField.reduce((isActivated, field) => { - const fieldData = schemaHelper.getItemByPath( - field.slice(1), - jsonSchemas[relationship.childCollection] ?? relatedSchemas[relationship.childCollection], - ); + const fieldData = schemaHelper.getItemByPath(field.slice(1), childSchema); return isActivated && _.get(fieldData, 'isActivated'); }, true); const parentFieldActivated = relationship.parentField.reduce((isActivated, field) => { const fieldData = schemaHelper.getItemByPath( field.slice(1), - jsonSchemas[relationship.parentCollection] ?? relatedSchemas[relationship.parentCollection], + jsonSchemas[relationship.parentCollection] ?? parentSchema, ); return isActivated && _.get(fieldData, 'isActivated'); }, true); From b6a6bd140999b563500bcba292c1ca33957b27ef Mon Sep 17 00:00:00 2001 From: Alik Rakhmonov Date: Fri, 19 Dec 2025 15:52:34 +0100 Subject: [PATCH 2/2] fix --- forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js b/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js index babbe31..4d4b28f 100644 --- a/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js +++ b/forward_engineering/hiveHelpers/helpers/foreignKeyHelper.js @@ -74,10 +74,7 @@ const getForeignKeyHashTable = ({ return isActivated && _.get(fieldData, 'isActivated'); }, true); const parentFieldActivated = relationship.parentField.reduce((isActivated, field) => { - const fieldData = schemaHelper.getItemByPath( - field.slice(1), - jsonSchemas[relationship.parentCollection] ?? parentSchema, - ); + const fieldData = schemaHelper.getItemByPath(field.slice(1), parentSchema); return isActivated && _.get(fieldData, 'isActivated'); }, true);