@@ -204,6 +204,15 @@ const getModifyGeneratedColumnsScriptDtos = ({app, dbVersion, modelDefinitions,
204204 . filter ( Boolean ) ;
205205}
206206
207+ const getDropAndRecreateColumnsScriptDtos = ( { app, dbVersion, modelDefinitions, internalDefinitions, externalDefinitions} ) =>
208+ ( collection ) => {
209+ const modifyGeneratedColumnsScriptDtos = getModifyGeneratedColumnsScriptDtos ( { app, dbVersion, modelDefinitions, internalDefinitions, externalDefinitions} ) ( collection ) ;
210+
211+ return [
212+ ...modifyGeneratedColumnsScriptDtos ,
213+ ]
214+ }
215+
207216/**
208217 * @return {(collection: Object) => AlterScriptDto[] }
209218 * */
@@ -214,15 +223,22 @@ const getModifyColumnScriptDtos = (
214223 const ddlProvider = require ( '../../ddlProvider/ddlProvider' ) ( null , null , app ) ;
215224
216225 const renameColumnScriptDtos = getRenameColumnScriptDtos ( _ , ddlProvider ) ( collection ) ;
226+
227+ const dropAndRecreateScriptDtos = getDropAndRecreateColumnsScriptDtos ( { app, dbVersion, modelDefinitions, internalDefinitions, externalDefinitions} ) ( collection ) ;
228+ if ( dropAndRecreateScriptDtos . length ) {
229+ return [
230+ ...renameColumnScriptDtos ,
231+ ...dropAndRecreateScriptDtos ,
232+ ] . filter ( Boolean ) ;
233+ }
234+
217235 const updateTypeScriptDtos = getUpdateTypesScriptDtos ( _ , ddlProvider ) ( collection ) ;
218- const modifyGeneratedColumnsScriptDtos = getModifyGeneratedColumnsScriptDtos ( { app, dbVersion, modelDefinitions, internalDefinitions, externalDefinitions} ) ( collection ) ;
219236 const modifyNotNullScriptDtos = getModifyNonNullColumnsScriptDtos ( _ , ddlProvider ) ( collection ) ;
220237 const modifyCommentScriptDtos = getModifiedCommentOnColumnScriptDtos ( _ , ddlProvider ) ( collection ) ;
221238
222239 return [
223240 ...renameColumnScriptDtos ,
224241 ...updateTypeScriptDtos ,
225- ...modifyGeneratedColumnsScriptDtos ,
226242 ...modifyNotNullScriptDtos ,
227243 ...modifyCommentScriptDtos ,
228244 ] . filter ( Boolean ) ;
0 commit comments