@@ -20,46 +20,62 @@ export default (args) => {
20
20
defaultValue,
21
21
newValues,
22
22
queryInterface,
23
+ sequelizeOptions = { } ,
23
24
enumName = `enum_${ tableName } _${ columnName } `
24
25
} = args ;
25
26
26
27
const newEnumName = `${ enumName } _new` ;
27
28
28
- return queryInterface . sequelize . transaction ( ( t ) => {
29
- const sequelizeOptions = { transaction : t } ;
29
+ return queryInterface . sequelize . transaction ( sequelizeOptions , ( t ) => {
30
+ const newSequelizeOptions = {
31
+ ...( sequelizeOptions || { } ) ,
32
+ transaction : t
33
+ } ;
30
34
31
35
// Create a copy of the type
32
- return createEnum (
33
- { queryInterface, name : newEnumName , values : newValues , sequelizeOptions }
34
- )
36
+ return createEnum ( {
37
+ queryInterface,
38
+ name : newEnumName ,
39
+ values : newValues ,
40
+ sequelizeOptions : newSequelizeOptions
41
+ } )
35
42
// Drop default value (ALTER COLUMN cannot cast default values)
36
- . then ( ( ) => defaultValue && unsetDefaultValueFromEnum (
37
- { queryInterface, tableName, columnName, sequelizeOptions }
38
- ) )
43
+ . then ( ( ) => defaultValue && unsetDefaultValueFromEnum ( {
44
+ queryInterface,
45
+ tableName,
46
+ columnName,
47
+ sequelizeOptions : newSequelizeOptions
48
+ } ) )
39
49
// Change column type to the new ENUM TYPE
40
50
. then ( ( ) => setColumnTypeToEnum ( {
41
51
tableName,
42
52
columnName,
43
53
enumName : newEnumName ,
44
54
queryInterface,
45
- sequelizeOptions
55
+ sequelizeOptions : newSequelizeOptions
46
56
} ) )
47
57
// Drop old ENUM
48
- . then ( ( ) => dropEnum ( { enumName, sequelizeOptions, queryInterface } ) )
58
+ . then ( ( ) => dropEnum (
59
+ {
60
+ name : enumName ,
61
+ sequelizeOptions : newSequelizeOptions ,
62
+ queryInterface
63
+ }
64
+ ) )
49
65
// Rename new ENUM name
50
66
. then ( ( ) => renameEnum ( {
51
67
oldEnumName : newEnumName ,
52
68
newEnumName : enumName ,
53
69
queryInterface,
54
- sequelizeOptions
70
+ sequelizeOptions : newSequelizeOptions
55
71
} ) )
56
72
. then ( ( ) => defaultValue && setColumnDefault ( {
57
73
tableName,
58
74
columnName,
59
75
defaultValue,
60
76
defaultValueType : enumName ,
61
77
queryInterface,
62
- sequelizeOptions
78
+ sequelizeOptions : newSequelizeOptions
63
79
} ) ) ;
64
80
} ) ;
65
81
} ;
@@ -165,27 +181,27 @@ export function getQueryToSetEnumType(tableName, columnName, enumName) {
165
181
*
166
182
* @param {Object } args
167
183
* @param {Object } args.queryInterface
168
- * @param {String } args.enumName
184
+ * @param {String } args.name
169
185
* @param {Object } args.sequelizeOptions
170
186
*
171
187
* @return {Promise }
172
188
*/
173
189
export function dropEnum ( args ) {
174
190
return args . queryInterface . sequelize . query (
175
- getQueryToDropEnum ( args . enumName ) ,
191
+ getQueryToDropEnum ( args . name ) ,
176
192
args . sequelizeOptions
177
193
) ;
178
194
}
179
195
180
196
/**
181
197
* Get the query to drop an Enum.
182
198
*
183
- * @param {String } enumName
199
+ * @param {String } name
184
200
*
185
201
* @return {String }
186
202
*/
187
- export function getQueryToDropEnum ( enumName ) {
188
- return `DROP TYPE "${ enumName } "` ;
203
+ export function getQueryToDropEnum ( name ) {
204
+ return `DROP TYPE "${ name } "` ;
189
205
}
190
206
191
207
/**
0 commit comments