diff --git a/forward_engineering/alterScript/alterScriptFromDeltaHelper.js b/forward_engineering/alterScript/alterScriptFromDeltaHelper.js index 41ae8ad..d189e8c 100644 --- a/forward_engineering/alterScript/alterScriptFromDeltaHelper.js +++ b/forward_engineering/alterScript/alterScriptFromDeltaHelper.js @@ -11,6 +11,7 @@ const { getDeleteColumnScriptDtos, getModifyColumnScriptDtos, getModifyCollectionScriptDtos, + getModifyCollectionKeysScriptDtos, } = require('./alterScriptHelpers/alterEntityHelper'); const { getDeleteUdtScriptDto, @@ -111,6 +112,12 @@ const getAlterCollectionsScriptDtos = ({ .map(getDeleteCollectionScriptDto(app)); const modifyCollectionScriptDtos = modifyScriptsData.flatMap(getModifyCollectionScriptDtos({ dbVersion })); + const modifyCollectionKeysScriptDtos = modifyScriptsData.flatMap(getModifyCollectionKeysScriptDtos({ dbVersion })); + + const [dropKeyScriptDtos, modifyKeyScriptDtos] = _.partition( + modifyCollectionKeysScriptDtos, + item => item.scripts[0]?.isDropScript, + ); const addColumnScriptDtos = createScriptsData .filter(item => !item?.compMod?.created) @@ -130,9 +137,11 @@ const getAlterCollectionsScriptDtos = ({ ...createCollectionsScriptDtos, ...deleteCollectionScriptDtos, ...modifyCollectionScriptDtos, + ...dropKeyScriptDtos, ...addColumnScriptDtos, ...deleteColumnScriptDtos, ...modifyColumnScriptDtos, + ...modifyKeyScriptDtos, ].filter(Boolean); }; diff --git a/forward_engineering/alterScript/alterScriptHelpers/alterEntityHelper.js b/forward_engineering/alterScript/alterScriptHelpers/alterEntityHelper.js index c159ddf..a87183b 100644 --- a/forward_engineering/alterScript/alterScriptHelpers/alterEntityHelper.js +++ b/forward_engineering/alterScript/alterScriptHelpers/alterEntityHelper.js @@ -88,19 +88,24 @@ const getModifyCollectionScriptDtos = collection => { const modifyCheckConstraintScriptDtos = getModifyCheckConstraintScriptDtos(collection); const modifyCommentScriptDtos = getModifyEntityCommentsScriptDtos(collection); + return [...modifyCheckConstraintScriptDtos, ...modifyCommentScriptDtos].filter(Boolean); + }; + +/** + * @return {(collection: AlterCollectionDto) => AlterScriptDto[]} + * */ +const getModifyCollectionKeysScriptDtos = + ({ dbVersion }) => + collection => { const modifyPKConstraintDtos = getModifyPkConstraintsScriptDtos(collection); const modifyUniqueKeyConstraintDtos = getModifyUniqueKeyConstraintsScriptDtos({ collection, dbVersion, }); const modifyIndexesScriptDtos = getModifyIndexesScriptDtos({ collection, dbVersion }); - return [ - ...modifyCheckConstraintScriptDtos, - ...modifyCommentScriptDtos, - ...modifyPKConstraintDtos, - ...modifyUniqueKeyConstraintDtos, - ...modifyIndexesScriptDtos, - ].filter(Boolean); + return [...modifyPKConstraintDtos, ...modifyUniqueKeyConstraintDtos, ...modifyIndexesScriptDtos].filter( + Boolean, + ); }; /** @@ -295,6 +300,7 @@ module.exports = { getAddCollectionScriptDto, getDeleteCollectionScriptDto, getModifyCollectionScriptDtos, + getModifyCollectionKeysScriptDtos, getAddColumnScriptDtos, getDeleteColumnScriptDtos, getModifyColumnScriptDtos,