续集。错误:列“ createdAt”中的空值违反了非空约束

时间:2018-08-06 20:57:29

标签: database postgresql sequelize.js sequelize-cli

我在这里关注本教程:http://docs.sequelizejs.com/manual/tutorial/migrations.html#creating-first-model-and-migration-

但是当我这样做时:

node_modules/.bin/sequelize db:seed:all

它给了我

ERROR: null value in column "createdAt" violates not-null constraint

我使用新的Postgres DB 10.4在新的npm init项目中进行了测试。

方言: postgres

方言版本:“ pg”:“ 7.4.3”,

数据库版本: 10.4

Sequelize版本:“ sequelize”:“ 4.38.0”

也许这是一条路吗? http://mmiyauchi.com/?p=2057

3 个答案:

答案 0 :(得分:1)

我找到了答案;由于某些原因,将createdAt和updatedAt添加到了SequelizeMeta表中,但是迁移是在没有日期值的情况下向SeqwuelizeMeta表中添加了一条记录,正是该查询中断了迁移。

答案 1 :(得分:0)

我遇到同样的错误是因为我的表中有一个数据,为了解决这个问题,我转储了所有数据并运行sequelize sync。

答案 2 :(得分:0)

使用 Sequelize + Postgres 发生在我身上。

添加到 sequelize.define 选项参数 timestamps: true 解决了它。

步骤:

  1. 我在表创建 (createdAt) 中定义了列 updatedAtdeletedAtqueryInterface.createTable

  2. 在模型定义选项对象 (sequelize.define(modelName, attributes, options)) 上,我忘记了 timestamps: true