database - waterline-model.create - primaryKey

标签 database node.js sails.js waterline

我有以下带有主键 ID 的模型:

attributes: {
   id: {
      type: 'integer',
      autoIncrement: true,
      primaryKey: true,
      unique: true
   },
    name: {
      type: 'string',
      unique: true,
      required: true
   },
}

我正在创建如下模型:

var model = {
     id: undefined,
     name: 'name',
};

waterlinemodel.create(model).exec(function(error, result) {});

但它抛出以下错误: Error (E_UNKNOWN) Encountered an unexpected error] 详细信息:错误:“id”列中的空值违反了非空约束

因为“id”是主键,水线不应查看“id”属性的值。

如何解决这个错误?我不想删除“id”,因为我已经为模型创建了值对象并且它包含模型的所有属性。我正在根据需要设置值对象属性。我不需要为创 build 置 id 属性。

最佳答案

我遇到了完全相同的问题,尤其是配置为使用 postgresql 的模型。将其设置为磁盘或内存时,将创建资源,但使用 postgresql 时,不会创建资源,并出现非空约束错误。

无论我是否设置 autoPK: true 都不会设置 id。即使使用 autoPK:false 在模型上设置 id 属性也不起作用。

关于database - waterline-model.create - primaryKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533190/

相关文章:

mysql - Sails 不会填充大型查询

javascript - 是否可以更改 sails.js 蓝图生成的驼峰案例 Controller 路线?

javascript - 是否可以创建一个使用 c 库进行 monetdb 连接的 node.js 模块?

mysql - 在另一列中重用列的结果

c# - ORM 是否有任何方法可以确定 SQLite 列包含日期时间或 bool 值?

mysql - sql动态日期比较

node.js - 使用拉入 Mongoose 模型

javascript - promise 要么永远不会被调用,要么被拒绝(Parse JS SDK)

javascript - sinon spy 不在生成器循环中注册调用?

javascript - 如何在 Sails.js 中从多个模型返回 JavaScript 中的表