SailsJs使用postgresql建模长整数支持

时间:2015-03-19 16:21:49

标签: sails.js sails-postgresql

我遇到使用PostgreSQL数据库运行的Sails应用程序的问题。我需要插入一个11位整数,但我找不到一种简单的方法来调整我的模型。

修改1 这是一个模型的例子:

/**
 * Phone.js
 *
 * @docs        :: http://sailsjs.org/#!documentation/models
 */

module.exports = {

    attributes: {
        number: {
            type: 'integer',
            required: true,
            minLength: 9
        }
    }
};

是否有办法(使用ORM)将该整数更改为Postgre中的BIGINT,以便插入时不会得到ERROR: integer out of rage

4 个答案:

答案 0 :(得分:1)

据此,哟应该能够定义" bigint"作为类型

https://github.com/balderdashy/sails-postgresql/blob/master/lib/utils.js#L241

还支持float,real,smallint等。 。 。

答案 1 :(得分:1)

在我的情况下,将类型定义为bigint不起作用。在模型中创建条目时,我在验证时遇到错误。

但是,我提供了以下属性,

type: string,
numeric: true,
minLength: 10

这很好,但不完全是我想要的。

答案 2 :(得分:1)

您的值作为字符串返回的原因是因为PostgreSQL's maximum value for BIGINT(2 ^ 63-1 = 9223372036854775807)远大于Javascript' s Number.MAX_SAFE_INTEGER(2 ^ 53 - 1 = 9007199254740991) )所以如果Sails / Waterline ORM将你的返回值作为一个整数投射,那么就有可能破坏事物。

因此,每次返回一个字符串会更安全。

答案 3 :(得分:0)

我可以通过以下设置属性来使其工作:

type: 'ref',
columnType: 'int8',