为什么在运行迁移时出现错误,我试图将typedatas文本更改为JSONB(PosgreesSql + sequelize)

时间:2019-04-04 05:10:55

标签: javascript node.js postgresql sequelize.js

我在进行序列化迁移时遇到错误, 在设置typedatas文本之前,我尝试更改为json时出现了一些错误...

ERROR: column "value" cannot be cast automatically to type jsonb

这是新代码:

  up: (queryInterface, Sequelize) => Promise.resolve()
    .then(async () => {
      await queryInterface.changeColumn('Action', 'value', {
        type: Sequelize.JSONB,
        allowNull: false,
        defaultValue: {},
      })
    }),

这是我要更改的迁移代码:

 up: (queryInterface, Sequelize) => queryInterface.createTable('Action', {
    ....
    value: {
      type: Sequelize.TEXT,
      allowNull: false,
      defaultValue: '',
    },
    ....
}

怎么了?

2 个答案:

答案 0 :(得分:1)

简单的解决方案... 我更改为

type: 'JSONB USING CAST ("value" as JSONB)'`

https://github.com/sequelize/sequelize/issues/2471

解决了我的问题...

答案 1 :(得分:0)

接受的答案对我不起作用。

我用了这个,效果很好。

type: `${Sequelize.JSONB} using to_jsonb(col_name)`