我似乎找不到适当的方法将列从字符串类型更改为ENUM,同时将数据保存在该列中。
我还尝试用ENUM类型创建一个新列,然后在列之间复制数据:
// migrations/20160606170538-change-column.js
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
return queryInterface.addColumn('time', 'newcolumn', {
allowNull: true,
type: Sequelize.ENUM('1-day', '7-day', '1-month', '3-month', '6-month', '1-year')
}).then(function () {
return queryInterface.sequelize.query("UPDATE time SET newcolum = oldcolumn");
});
},
down: function (queryInterface, Sequelize) {
}
};
但是,我在迁移时返回以下错误:
错误:列"newcolumn“的类型为enum_time_newcolumn,但表达式的类型为字符变化]
发布于 2016-06-07 15:01:29
Postgres不知道oldcolumn
中的字符串数据可以适应枚举值--尝试转换它
return queryInterface.sequelize.query("UPDATE time SET newcolum = oldcolumn::enum_time_newcolumn");
https://stackoverflow.com/questions/37668376
复制相似问题