水线 BIGINT 类型 sails-mysql
Waterline BIGINT type with sails-mysql
我想知道如何使用 sails-mysql 在水线模型中定义 bigint 类型?找不到关于它的任何适当的文档。似乎它不支持 bigint 类型,但我真的需要它。试图挖掘源代码我发现了一些谎言:
https://github.com/balderdashy/sails-mysql/blob/987f4674785970951bc52becdfdb479864106da1/helpers/private/schema/build-schema.js#L29
但是还是不行。
module.exports = {
attributes: {
userId: {
type: 'bigint',
autoIncrement: true,
primaryKey: true,
unique: true,
},
}
};
这个仍然在数据库中创建一个整数字段。
好的,在深入研究了源代码之后,我想我必须为该字段设置一个名为 size 的额外 属性。将其设置为 64 将导致水线创建一个 BIGINT 字段。
module.exports = {
attributes: {
userId: {
type: 'integer',
size: 64, // waterline will translate this as bigint
autoIncrement: true,
primaryKey: true,
unique: true,
},
}
};
另一种方法是使用以下属性:
{
type: 'string',
columnType: 'bigint'
}
这会忽略 Waterline 数据类型并直接强制 Postgres/MySQL 列数据类型。
编辑:我没有对此进行彻底测试。毕竟没用。
Sails v1.0+ 中的模型属性不允许 属性 size
,但这似乎有效。我从 the waterline library 中 createdAt
属性的定义中提取了它(撰写本文时,第 485 行)。
module.exports = {
attributes: {
timeOfDay: {
type: 'number',
autoMigrations: { columnType: '_numbertimestamp' }
}
}
};
我想知道如何使用 sails-mysql 在水线模型中定义 bigint 类型?找不到关于它的任何适当的文档。似乎它不支持 bigint 类型,但我真的需要它。试图挖掘源代码我发现了一些谎言: https://github.com/balderdashy/sails-mysql/blob/987f4674785970951bc52becdfdb479864106da1/helpers/private/schema/build-schema.js#L29 但是还是不行。
module.exports = {
attributes: {
userId: {
type: 'bigint',
autoIncrement: true,
primaryKey: true,
unique: true,
},
}
};
这个仍然在数据库中创建一个整数字段。
好的,在深入研究了源代码之后,我想我必须为该字段设置一个名为 size 的额外 属性。将其设置为 64 将导致水线创建一个 BIGINT 字段。
module.exports = {
attributes: {
userId: {
type: 'integer',
size: 64, // waterline will translate this as bigint
autoIncrement: true,
primaryKey: true,
unique: true,
},
}
};
另一种方法是使用以下属性:
{
type: 'string',
columnType: 'bigint'
}
这会忽略 Waterline 数据类型并直接强制 Postgres/MySQL 列数据类型。
编辑:我没有对此进行彻底测试。毕竟没用。
Sails v1.0+ 中的模型属性不允许 属性 size
,但这似乎有效。我从 the waterline library 中 createdAt
属性的定义中提取了它(撰写本文时,第 485 行)。
module.exports = {
attributes: {
timeOfDay: {
type: 'number',
autoMigrations: { columnType: '_numbertimestamp' }
}
}
};