Skip to content

Commit 273ad8c

Browse files
authored
HCK-5356: Double "Create Index" and "Drop Index" statement in existing entities in ALTER script (#98)
* HCK-5356: removed invalid indexes source for new indexes and removed redundant indexes scripts generation on newly created columns * HCK-5356: removed redundant indexes source for check * HCK-5356: improved code
1 parent 0e823e8 commit 273ad8c

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

forward_engineering/alterScript/alterScriptHelpers/alterEntityHelper.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const {getRenameColumnScriptDtos} = require("./columnHelpers/renameColumnHelper"
77
const {AlterScriptDto} = require("../types/AlterScriptDto");
88
const {AlterCollectionDto} = require('../types/AlterCollectionDto');
99
const {getModifyPkConstraintsScriptDtos} = require("./entityHelpers/primaryKeyHelper");
10-
const {getModifyIndexesScriptDtos} = require("./entityHelpers/indexesHelper");
10+
const {getModifyIndexesScriptDtos, getAddedIndexesScriptDtos, getAdditionalDataForDdlProvider} = require("./entityHelpers/indexesHelper");
1111

1212

1313
/**
@@ -142,7 +142,7 @@ const getAddColumnsByConditionScriptDtos = ({app, dbVersion, modelDefinitions,
142142
* @return {AlterScriptDto[]}
143143
* */
144144
const getIndexesBasedOnNewlyCreatedColumnsScript = ({_, ddlProvider, dbVersion, collection}) => {
145-
const newIndexes = collection?.role?.compMod?.Indxs?.new || collection?.role?.Indxs || []
145+
const newIndexes = collection?.role?.Indxs || []
146146
const newPropertiesIds = Object.values(collection?.properties ?? {}).map(({GUID}) => GUID)
147147

148148
if (newIndexes.length === 0 || newPropertiesIds.length === 0) {
@@ -155,7 +155,11 @@ const getIndexesBasedOnNewlyCreatedColumnsScript = ({_, ddlProvider, dbVersion,
155155
return []
156156
}
157157

158-
return getModifyIndexesScriptDtos({ _, ddlProvider })({ collection, dbVersion })
158+
const additionalDataForDdlProvider = getAdditionalDataForDdlProvider({_, dbVersion, collection})
159+
160+
return getAddedIndexesScriptDtos({_, ddlProvider})({
161+
collection, additionalDataForDdlProvider
162+
});
159163
}
160164

161165
/**

forward_engineering/alterScript/alterScriptHelpers/entityHelpers/indexesHelper.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ const getCreateIndexScriptDto = ({_, ddlProvider}) => ({index, collection, addit
141141
* }) => Array<AlterScriptDto>}
142142
* */
143143
const getAddedIndexesScriptDtos = ({_, ddlProvider}) => ({collection, additionalDataForDdlProvider}) => {
144-
const newIndexes = collection?.role?.compMod?.Indxs?.new || collection?.role?.Indxs || [];
144+
const newIndexes = collection?.role?.Indxs || [];
145145
const oldIndexes = collection?.role?.compMod?.Indxs?.old || [];
146146

147147
return newIndexes
@@ -319,13 +319,7 @@ const getModifiedIndexesScriptDtos = ({_, ddlProvider}) => ({collection, additio
319319
* @return {({ collection: AlterCollectionDto, dbVersion: string }) => Array<AlterScriptDto>}
320320
* */
321321
const getModifyIndexesScriptDtos = ({_, ddlProvider}) => ({collection, dbVersion}) => {
322-
const {getSchemaNameFromCollection} = require('../../../utils/general')(_);
323-
const additionalDataForDdlProvider = {
324-
dbData: {dbVersion},
325-
tableName: collection?.compMod?.collectionName?.new || collection?.role?.name || '',
326-
schemaName: getSchemaNameFromCollection({collection}) || '',
327-
isParentActivated: collection.isActivated,
328-
}
322+
const additionalDataForDdlProvider = getAdditionalDataForDdlProvider({_, dbVersion, collection})
329323

330324
const deletedIndexesScriptDtos = getDeletedIndexesScriptDtos({_, ddlProvider})({
331325
collection, additionalDataForDdlProvider
@@ -345,6 +339,19 @@ const getModifyIndexesScriptDtos = ({_, ddlProvider}) => ({collection, dbVersion
345339
.filter(Boolean);
346340
}
347341

342+
const getAdditionalDataForDdlProvider = ({_, dbVersion, collection}) => {
343+
const {getSchemaNameFromCollection} = require('../../../utils/general')(_);
344+
345+
return {
346+
dbData: {dbVersion},
347+
tableName: collection?.compMod?.collectionName?.new || collection?.role?.name || '',
348+
schemaName: getSchemaNameFromCollection({collection}) || '',
349+
isParentActivated: collection.isActivated,
350+
}
351+
}
352+
348353
module.exports = {
349354
getModifyIndexesScriptDtos,
355+
getAddedIndexesScriptDtos,
356+
getAdditionalDataForDdlProvider
350357
}

0 commit comments

Comments
 (0)