【问题标题】:Sequelize: Change column type to ENUMSequelize:将列类型更改为 ENUM
【发布时间】:2016-10-06 16:58:45
【问题描述】:

在将数据保留在该列中时,我似乎找不到将列从 String 类型更改为 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 但表达式的类型是字符变化]

【问题讨论】:

    标签: node.js postgresql enums sequelize.js sequelize-cli


    【解决方案1】:

    Postgres 不知道 oldcolumn 中的字符串数据可以适合枚举值 - 尝试强制转换它

    return queryInterface.sequelize.query("UPDATE time SET newcolum = oldcolumn::enum_time_newcolumn");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多