SailsJs 模型长整数支持与 postgresql

SailsJs Models long integer support with postgresql

我在使用 Sails 应用程序 运行 PostgreSQL 数据库时遇到问题。我需要插入一个 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

据此,你应该可以将 "bigint" 定义为类型

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

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

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

但是,我给出了以下属性,

type: string,
numeric: true,
minLength: 10

还不错,但不是我想要的。

您的值被 return 编辑为字符串的原因是因为 PostgreSQL's maximum value for BIGINT (2^63-1 = 9223372036854775807) is considerably bigger than Javascript's Number.MAX_SAFE_INTEGER (2^53 - 1 = 9007199254740991) 所以如果 Sails / Waterline ORM 要投射您的 return ed 值始终是一个整数,有可能破坏事物。

所以,每次 return 一个字符串更安全。

我能够通过使用以下属性设置它来使其工作:

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