Tag: sequelize.js

在Sequelize迁移中定义部分索引?

我现在在我的模型定义中使用以下索引: { name: 'unique_partner_id', unique: true, fields: ['partnerId'], where: { email: { $ne: null } } } 但是,我想使用迁移而不是同步,所以我试图将此定义从模型移动到初始迁移文件。 有一个queryInterface.addIndex()方法,但是,我找不到任何文档。 那么,如何使用queryInterface定义一个部分索引呢?

连接两个没有关联的表

我试图通过连接两个不使用关系“关联”的表来检索数据。 这两个表如下: mysql> desc partner_txns; +————+————-+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +————+————-+——+—–+———+—————-+ | id | int(11) | NO | PRI | NULL | auto_increment | | txn_id | int(11) | NO | | NULL | | | user_id | int(11) | NO | MUL | NULL | […]

findOne中的属性返回所有字段

我有 db.User.findOne({ attributes: ['id', 'firstName', 'lastName', 'email', 'phoneNumber', 'createdAt', 'type', 'status'], where: { id: id } }).then(function(dbUser) { console.log(dbUser); }); 它将返回所有的字段,而不仅仅是attributes指定的attributes 。 我究竟做错了什么?

Node&Sequelize:如何在开发人员之间共享数据库模式?

在Node.js中,在开发人员之间共享数据库模式而不运行每个迁移的最佳方式是什么? 现在我使用Sequelize作为ORM。 例如,在Rails中,有一个schema.rb文件可以运行以获取任何空的数据库安装,以加速当前模式。

使用sequelize.js检查logging/模型是否唯一

我有一个具有规范化数据的userAttribute表。 我看起来像这样: UserAttribute = sequelize.define('userAttributes', { name: { type: Sequelize.STRING, allowNull: false }, value: { type: Sequelize.STRING, allowNull: false }, }; User.hasMany(userAttributes); userAttributes.belongsTo(User); 一些数据必须是唯一的。 例如,如果名称是电子邮件,那么名称为电子邮件的其他logging不能使用该值,因为每个用户都必须具有唯一的电子邮件地址。 我知道我可以做一个模型validation,并在数据库中查找,但这似乎是非常低效的。 我也可以将所有必须在自己的列中的唯一的数据放在用户模型中,但是有一些好的方法可以将数据保存在userAttributes-table中吗? 例如检查整个模型是否是唯一的。

使用Sequelize.import时定义模型的顺序

我现在使用Sequelize,一个node.js orm。 根据这个例子,我的代码如下: module.exports = function(callback){ var fs = require('fs'); var path = require('path'); var Sequelize = require('sequelize'); var logger = require(path.join(__dirname, '../logger/logger.js')); var settings = JSON.parse(fs.readFileSync(path.join(__dirname, '../../config/settings.json'), 'utf8')); var dbConnectionInfo = require(path.join(__dirname, '../../lib/util/dbConnectionInfo.js'))(settings.dbUri); var sequelize = new Sequelize(dbConnectionInfo.dbUri,{logging:false}); sequelize.authenticate() .then(function() { if (callback) { callback(); } }) .catch(function(error) { logger.error('DB Connection failed ', error); […]

nodejs singelton用于sequalize的数据库连接

我只是好奇。 使用require和dependency injection在nodejs中打开数据库连接的正确方法是什么? 在PHP中,我将创build一个连接作为一个全局variables中的单例。 但是,这似乎不是节点中的最佳实践。 因此我有以下问题: 你会在哪里打开节点的数据库连接? 你会打开数据库连接一次或多次? 如何在保持es6模块导入的同时只打开一次数据库连接? 如何通过es6模块加载打开多个数据库连接? 如果我多次导入同一个数据库,是否会导致多个连接? 我宁愿知道并想要控制我的服务器打开了多less个连接。 例如,如果我写一个低数据库访问的后端工作人员,我宁愿只打开一个数据库连接那里运行一个快速服务器,我想打开每个请求的连接。 我怎样才能做到这一点? 我知道有类似的问题,但似乎并没有完全回答我的问题: 在节点ES6中的Singlton 在哪里连接到节点中的数据库? NodeJS Expressdependency injection和数据库连接 所以我的基本想法是: /* DbService.js */ var Sequelize = require('sequelize'); module.export = new Sequelize('database', 'username') 与模型/实例相同 /* Foo.js */ var db = require("DbService.js"); export var Foo = db.define('foo', {…}); 而在代码中我比通过加载数据库/模型 /* server.js */ import Foo from './Foo'; […]

无法读取null + passport.js的属性“body”

我试图在Node / Express / Sequelize应用程序中实现passport.js。 我试图尽可能忠实于官方文档和Scotch.io教程 ,目前在我的脚手架上有以下相关的代码段: app.js const express = require('express'); const http = require('http'); const https = require('https'); const sequelize = require('sequelize'); const db = require('./config/sequelize'); const config = require('./config/config'); const passport = require('./config/passport'); const app = express(); const port = 3000; app.use(passport.initialize()); app.use(passport.session()); app.set('view engine', 'ejs'); app.listen(port); app.post('/signup', passport.authenticate('local', function(req, res, next, […]

Sequelize迁移:更新列属性后更新模型

我已经完成了。 在更改状态列属性之后,我遇到更新行的问题。 up: function(queryInterface, Sequelize) { return queryInterface.changeColumn('projects', 'status', { type: Sequelize.ENUM('processing', 'unassigned', 'ongoing', 'completed'), allowNull: false, defaultValue: 'unassigned' }).then(function() { return Project.update({ status: 'unassigned' }, { where: { status: 'processing' } }); }); } Project.update()在任何情况下似乎都不起作用,但改变了列的属性。 任何想法的家伙? 我在某种程度上是续集的新手,任何想法都将是一个很大的帮助。 谢谢。

正确查询基于查找所有对象有很多关系

你好,我遇到了一个问题,find最好的解决scheme,find并计算所有可用于预订的汽车。 我的意思是车模和预约模型之间有这样的关系: Reservation.belongsTo(Car); Car.hasMany(Reservation, {foreignKey: { allowNull: false }}); 然后,我需要find所有可供用户在他/她select的时间段内预定的车辆。 例如,让我们想象一下这样的情况:我们有3辆车,A,B,C和: 汽车 – 答:现在有两个保留 – 从2016年10月10日至2016年10月13日和从17.10.2016 – 18.10.2016 车B:有一个保留 – 8.10.2016 – 11.10.2016 车C:一次预约 – 15.10.2016 – 16.10.2016 用户希望从12.10.2016至16.10.2016预定一辆车。 因此,他只能得到一辆车select:汽车乙 我创build了这样的查询来得到这个结果: var results = await Car.findAndCountAll({ include: [{ model: Reservation, where: { $not: { $or: [ { dateIn: { $between: [chosenIn, chosenOut], } }, { […]