首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水线- Postgres - DataTypes

水线- Postgres - DataTypes
EN

Stack Overflow用户
提问于 2017-11-13 14:13:37
回答 2查看 349关注 0票数 0

我在使用Waterline模型和创建与这些模型相关的Postgres表时遇到了困难。

无论我如何通过模型在表中创建varchar(n),它都会将属性转换为文本。bigint也正在被转换为整数!

我应该改变ORM吗?

有没有办法做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2017-11-15 03:26:57

你可以做一个更令人愉快的方法,使用Waterline在"CRUD“中"RUD”,而不是"C“- create!这是因为Waterline在创建中间表、主键(组合键)等方面可能非常“糟糕”。所以我今天要做的是:

  1. 生成完整的.sql文件存档以创建索引和表。
  2. 只需创建一次数据库。(Alter if needed).
  3. Declare所有表作为模型。只需插入类型、主键(如果是单个键)并确保将config/models.js设置为migrate : safe.

即可

结论:我可以使用Waterline插入、读取和删除行,但我不信任它(从性能上讲)来创建我的表。另一方面,Sequelize是一种更成熟的对象关系管理,如果您需要,可以使用它。对我来说,混合使用waterline + SQL就足够了。

编辑:我的模型没有任何聚合(像my_pets: { model: pet} ),只有行名和类型,尽可能简单。

票数 1
EN

Stack Overflow用户

发布于 2017-11-14 15:16:07

Sails支持的数据类型:

字符串、文本、整数、浮点数、日期、日期时间、布尔值、二进制、数组、json、mediumtext、float text、objectid

如果需要指定确切长度查询varchar(n),则需要使用如上所示的支持的数据类型,或者sails提供名为->的选项。

Model.query()方法,可用于执行所需的任何类型的查询。

代码语言:javascript
复制
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();
 });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47258102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档