Skip to content

Commit 93957f9

Browse files
authored
HCK-14751: Relationship isn't renamed but duplicated one is created on instance after Alter script with renamed relationship is applied (#127)
1 parent 914a72d commit 93957f9

2 files changed

Lines changed: 19 additions & 3 deletions

File tree

forward_engineering/alterScript/alterScriptFromDeltaHelper.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,19 @@ const getAlterViewScripts = (collection, app, modelData) => {
9898
};
9999

100100
const getInlineRelationships = ({ data, options }) => {
101-
// Will be implemented with script generation options
102-
return [];
101+
if (options?.scriptGenerationOptions?.feActiveOptions?.foreignKeys !== 'inline') {
102+
return [];
103+
}
104+
105+
const addedCollectionIDs = getItems(data.properties?.entities?.properties?.added)
106+
.filter(item => item && Object.values(item.properties)?.[0]?.compMod?.created)
107+
.map(item => Object.values(item.properties)[0].role.id);
108+
109+
const addedRelationships = getItems(data.properties?.relationships?.properties?.added)
110+
.map(item => item && Object.values(item.properties)[0])
111+
.filter(r => r?.role?.compMod?.created && addedCollectionIDs.includes(r?.role?.childCollection));
112+
113+
return addedRelationships;
103114
};
104115

105116
const getAlterRelationshipsScript = ({ collection, app, modelData, ignoreRelationshipIDs = [] }) => {

forward_engineering/alterScript/alterScriptHelpers/alterForeignKeyHelper.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ const getRelationshipName = ({ relationship }) => {
66
return compMod.code?.new || compMod.name?.new || relationship.role.code || relationship.role.name;
77
};
88

9+
const getOldRelationshipName = ({ relationship }) => {
10+
const compMod = relationship.role.compMod;
11+
return compMod.code?.old || compMod.name?.old || relationship.role.code || relationship.role.name;
12+
};
13+
914
const getFullChildTableName = ({ relationship, modelData }) => {
1015
const compMod = relationship.role.compMod;
1116

@@ -94,7 +99,7 @@ const getAddForeignKeyScripts =
9499
const getDeleteSingleForeignKeyStatementDto = ({ app, relationship, modelData }) => {
95100
const compMod = relationship.role.compMod;
96101
const tableName = getFullChildTableName({ relationship, modelData });
97-
const relationshipName = getRelationshipName({ relationship });
102+
const relationshipName = getOldRelationshipName({ relationship });
98103
const constraintName = prepareConstraintName(relationshipName);
99104
const assignTemplates = app.require('@hackolade/ddl-fe-utils').assignTemplates;
100105

0 commit comments

Comments
 (0)