我在使用Waterline模型和创建与这些模型相关的Postgres表时遇到了困难。
无论我如何通过模型在表中创建varchar(n),它都会将属性转换为文本。bigint也正在被转换为整数!
我应该改变ORM吗?
有没有办法做到这一点?
发布于 2017-11-15 03:26:57
你可以做一个更令人愉快的方法,使用Waterline在"CRUD“中"RUD”,而不是"C“- create!这是因为Waterline在创建中间表、主键(组合键)等方面可能非常“糟糕”。所以我今天要做的是:
.sql文件存档以创建索引和表。config/models.js设置为migrate : safe.即可
结论:我可以使用Waterline插入、读取和删除行,但我不信任它(从性能上讲)来创建我的表。另一方面,Sequelize是一种更成熟的对象关系管理,如果您需要,可以使用它。对我来说,混合使用waterline + SQL就足够了。
编辑:我的模型没有任何聚合(像my_pets: { model: pet} ),只有行名和类型,尽可能简单。
发布于 2017-11-14 15:16:07
Sails支持的数据类型:
字符串、文本、整数、浮点数、日期、日期时间、布尔值、二进制、数组、json、mediumtext、float text、objectid
如果需要指定确切长度查询varchar(n),则需要使用如上所示的支持的数据类型,或者sails提供名为->的选项。
Model.query()方法,可用于执行所需的任何类型的查询。
var queryString='CREATE TABLE if not exists sailsusers.test (id INT NOT NULL,name VARCHAR(45) NULL,PRIMARY KEY (id))'
Test.query(queryString,function(err,a){
if(err)
return console.log(err);
console.log(a,'\n',b);
res.ok();
});https://stackoverflow.com/questions/47258102
复制相似问题