Articles of sequelize.js

续集:连接两次相同的表

背景: 我有一个与Userlang具有一对多关系的Userlang 。 例如: userlang.id userlang.userid userlang.lang +———–+—————+————-+ 1 1 EN 2 1 FR 3 1 IT 4 2 EN 5 2 DE 6 3 IT 我想select至less有一个userlang.lang=EN. 所有用户和他们的userlang userlang.lang=EN. 所以,我不能使用以下查询: Select USERS.id from USERS inner join USERLANG on USERS.ID=USERLANG.USERID where USERLANG.LANG="EN" 因为它只会selectlang="EN"的Userlangs行,而我想select每个用户的所有userlang行,其中至less有一个lang="EN" 我已经可以用SQL以两种方式编写这样的查询: 使用子查询: Select * from USERS inner join USERLANG on USERS.ID=USERLANG.USERID where USERS.ID […]

使用续集ORM连接到node.js上的Amazon RDS Postgres数据库的问题

我目前正在将在Heroku中设置的环境迁移到Amazon Web服务堆栈(RDS PostgreSQL,Elastic Beanstalk)。 尝试通过sequelize.js ORM连接到PostgreSQL时,我遇到了一些问题。 错误信息如下: 未处理的拒绝SequelizeHostNotFoundError:getaddrinfo ENOTFOUND [host]。 我可以通过pgAdmin连接到数据库,所以我知道服务正在工作,并且以下configuration在Heroku上工作: sequelize = new Sequelize(process.env.DATABASE_URI, { dialect: 'postgres', protocol: 'postgres', logging: true, timestamps: false }) DATABASE_URI格式如下: postgres://[db_username]:[db_password]@[hostname]:[port]/[db_name] 任何帮助将不胜感激。 提前致谢!

如何在Sequelize迁移中创build关联?

我正在使用迁移来创build实体。 当然,有些关系在他们之间。 到目前为止,通过使用sync(true) ,我享受了Sequelize在数据库级实现关系的好处。 我如何在迁移中expression新的关系? 一对多:我应该照顾外键列吗? 多对多:我应该创build中间表并在每个实体的表上设置外键吗? 或者:我应该运行迁移,然后sync(false) ? 关系不再相关的呢?

如何在Sequelize.js中使用数据库连接池

我需要澄清一下游泳池是什么以及它的function。 文档说Sequelize将在初始化时build立一个连接池,所以你应该只在每个数据库创build一个实例。 var sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql', pool: { max: 5, min: 0, idle: 10000 }, // SQLite only storage: 'path/to/database.sqlite' });

Sequelize:如何映射数据透视表中的自定义属性

我有这个数据透视表,它代表了与模型Person和Movie的多对多关系。 事情是,当我打电话给那些关联人的电影时,我想得到这个angular色。 我尝试过,但没有显示angular色: models.Movie.findAll({ include: [{ model: models.Person, as: 'persons', through: {attributes: ["role"]} }] }).then(function(movies) { res.json(movies); }); 我是否必须在role的模型中指定某些内容?

用关联的数据创build一个复合索引?

我有一个用户表和一个userAttributes表。 每个用户只能有一个每个userAttribute的实例,所以我想创build一个列名和userId(这是由userAttributes.belongsTo创build的)复合唯一索引。这怎么能做到? UserAttribute = sequelize.define('userAttributes', { name: { type: Sequelize.STRING, allowNull: false, unique: 'nameIndex', validate: { isIn: [['phone', 'name','driverRequest']], } }, value: { type: Sequelize.STRING, allowNull: false }, }); User.hasMany(userAttributes, {unique: 'nameIndex'}); userAttributes.belongsTo(User, {unique: 'nameIndex'}); 我试着添加唯一的nameIndex没有成功,它似乎只适用于名称列。

UTC时间Sequelize.js

我在node.js中使用Sequelize来保存打开和closures时间。 我也使用了moment.js格式。 改变一个FindOrCreate我这样做: result.open = moment(hours.open, "hh:mma").format("YYYY-MM-DD HH:mm:ss"); result.save() … 这工作正常,时间格式化为MySQL的date时间格式。 问题是当我检索时间Seqquelize认为这是一个UTC时间,并将其转换为EST(我的服务器时区)。 我更喜欢它作为UTC进入数据库,并以相同的方式出现。 有什么我做错了吗? 为什么sequelize没有将其转换为UTC插入,但假设它是UTC出来? 也有,有没有办法转换到我的服务器时区?

如何在带有省略标志的Sequelize中插入空值?

如果我没有在模型的create方法中定义它们,我有一个Sequelize的实例,用标志omitNull插入在数据库中定义的de defaultValues。 喜欢这个: var sequelize = new Sequelize('db', 'user', 'pw', { omitNull: true }) 但是我想在其他模型中插入空值,如果我将它们定义为空。 喜欢: SomeModel.create({some_property: null}); 有没有一种方法来为模型的某些属性定义omitNull属性?

风帆js和Sequelize

我正在学习Node.js和Sails是我的select框架。 我想在MySql数据库的项目中使用它,我认为Sequelize Orm更完整。 我怎样才能使用Sequelize Orm in Sails而不是Waterline? 谢谢

通过Sequelize(Express / NodeJS)访问MySQL时出错

我正在尝试使用Sequelize。 我虽然想到了一些错误,但清除了其中的一些,但是我无法弄清楚。 项目结构: Project -Client -Server –models —index.js —Sid.js –router —routes —-signup.js —index.js app.js 我的configuration可变: "Lexstart": { "dbConfig": { "driver": "mysql", "user": "root", "database": "sid1", "password": "sid1", "host": "127.0.0.1", "port": "3306" } } 我的模特/ index.js: var fs = require("fs"); var path = require("path"); var Sequelize = require('sequelize'); var config = require('config'); // we use node-config […]