0

PostgreSQL データベースで実行されている Sails アプリケーションに問題があります。11 桁の整数を挿入する必要がありましたが、モデルを微調整する簡単な方法が見つかりません。

編集 1 はモデルの例です:

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

module.exports = {

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

Postgre でその整数を BIGINT に変更する方法 (ORM を使用) はありERROR: integer out of rageますか?

4

4 に答える 4

2

これによると、タイプとして「bigint」を定義できるはずです

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

float、real、smallint ect もサポートしています。. .

于 2015-03-20T13:37:12.027 に答える
1

私の場合、型を bigint として定義してもうまくいきませんでした。モデルにエントリを作成しているときに、検証でエラーが発生しました。

ただし、次のプロパティを指定しました。

type: string,
numeric: true,
minLength: 10

それは十分でしたが、私が望んでいたものとはまったく異なりました。

于 2015-12-14T00:02:15.970 に答える
1

値が文字列として返される理由は、PostgreSQL の BIGINT の最大値(2^63-1 = 9223372036854775807) が Javascript のNumber.MAX_SAFE_INTEGER (2^53 - 1 = 9007199254740991)よりもかなり大きいためです。物事を壊す可能性がある場合は常に、戻り値を整数としてキャストしてください。

したがって、毎回文字列を返す方が安全です。

于 2016-07-30T12:37:37.703 に答える
0

次のように属性を設定することで、機能させることができました。

type: 'ref',
columnType: 'int8',
于 2020-03-16T05:01:19.073 に答える