Tag: sequelize.js

使用Sequelize将两个模型发送到视图

我试图用Sequelize发送两个模型到一个视图,但我不知道如何继续。 我下面的代码不起作用。 Post.findAll().success( function(posts) { Creation.findAll().success( function(creations) { res.render('admin_index', { creations: creations, posts: posts }); }); }); 安东尼

Sequelize .sync函数挂起:来自serial.klass的发射器

我从暂存计算机上完美运行的临时环境中取出了一个应用程序,但本地挂起了sequelize.sync函数。 该应用程序甚至没有达到“听港口…” 我已经通过Sequelize中的同步functionlogin,发现这是卡住的地方: (query-chainer.js中的第79 – 88行) var emitter = serial.klass[serial.method].apply(serial.klass, serial.params) emitter.success(function(result) { self.serialResults[serialCopy.indexOf(serial)] = result if (serial.options.success) { serial.options.success(serial.klass, onSuccess) } else { onSuccess() } }).error(onError) 此function不会返回到success或error 。 我不应该对代码做任何修改,因为我知道他们的库正在工作 – 我有一个本地副本,可以重构我的工作,我只需要分段副本在生产过程中快速更改生产重构。 有什么可以改变造成这个问题? 这似乎可能是一个连接问题? 我已经validation主机是端口为5432 localhost主机。 更正username , password和dbName 。 所有通过: sequelize = new Sequelize(config.db.dbName, config.db.username, config.db.password, { dialect: 'postgres', host: config.db.host, port: config.db.port, logging: […]

与PostgreSQL的Sequelize中的外键约束丰富的自联想

我在PostgreSQL中使用SequelizeJS .. 我有一个桌子units 。 我想要一个表unit_relations与列unit1_id , unit2_id , type 。 unit1_id和unit2_id都应该具有对units.id外键约束,以便任何时候单元被删除时,引用该单元的unit_relations任何行(作为unit1或unit2 )也将被删除。 在Sequelize中,我想将unit2映射到Relation ,将unit1映射到ReverseRelation ; 例如行 单位unit_relations ———— + ————— ———- + ———- + ——- relation_id | reverce_rel_id unit1_id | unit2_id | types ———— + ————— ———- + ———- + ——– | 11 | 43 | 亲 将由unit1.getRelations()和unit2.getReverseRelations() 。 我很难得到Sequelize尊重我的列名称(它想要使用relation_id和reverse_relation_id )或创build外键。

将许多文档串起来

我正在尝试使用节点和续集来创build项目和任务之间的多对多关联。 我不知道如何创build新的“任务”与variables名称,可以作为一个数组积累为project.setTasks函数,因为这里的文档给出了作为一个例子ALOT的细节丢失。 http://sequelizejs.com/documentation#associations-many-to-many 这里是他们给的例子: Project.hasMany(Task) Task.hasMany(Project) Project.create()… Task.create()… Task.create()… // save them… and then: project.setTasks([task1, task2]).success(function() { // saved! })

你如何使用Sequelize指定一个只读副本?

你如何使用Sequelize指定一个只读副本? 我已经根据他们的文档创build了一个非常基本的testing。 https://github.com/sequelize/sequelize/blob/master/docs/usage.md var Sequelize = require("sequelize"); var sequelize = new Sequelize('database', 'root', '', { dialect: 'mysql', port: 3306, replication: { read: [ { host: 'host1' } ], write: { host: 'host2' } }, pool: { // If you want to override the options used for the read pool you can do so here maxConnections: […]

为多对多关系重新创build连接表

我没有看到为我的代码创build的交界表(UserEvents为:参加者)。 当我尝试使用event.setAttendees([user])将“Attendee”添加到事件中时,它将在用户表上设置EventId(从而使其成为一对多关系) 在同步日志logging期间,不会创build具有“userevents”相关名称的表 var User = db.import(__dirname + '/user'); var Event = db.import(__dirname + '/event'); Event.hasMany(User, { as: 'Attendees'}); User.hasMany(Event); db.sync({logging: console.log}).success(function() { logger.info('DB Initialization successful!'); createDefaultData() }).error(function(err) { logger.error('DB Initialization failed!', err); }); var createDefaultData = function() { User.create({email:"test@test.com", firstName: "tolga", lastName: "ekmen", password: "qwer", location: "13424"}); }

多对多:sequelize不会创build方法

考虑两个模型User和Project的关系多对多。 当我尝试这个: db.User.getProjects()我得到一个错误 TypeError:Object [object Object]没有方法'getProjects()' 我已经阅读了文档,这个方法应该是自动生成的 那么为什么我得到这个错误? 源代码: project.js module.exports = function(sequelize, DataTypes) { var Project = sequelize.define('Project', { name: DataTypes.STRING }, { classMethods: { associate: function(models) { Project.hasMany(models.User); } } }) return Project } user.js的 module.exports = function(sequelize, DataTypes) { var User = sequelize.define('User', {}, { classMethods: { associate: function(models) { User.hasMany(models.Project), User.belongsTo(models.Boss, […]

EQMEDOUT在sequelize.sync()

所以当我启动服务器的时候,有大约60%的时间出现这个错误。 [2014-10-31T00:55:30.763Z] ERROR: main/4588 on vagrant-centos65.vagrantup.com: undefined (err.errorno=ETIMEDOUT, err.code=ETIMEDOUT, err.syscall=connect, err.fatal=true) Error: connect ETIMEDOUT at Connection._handleConnectTimeout (/vagrant/node_modules/mysql/lib/Connection.js:346:13) at Socket.g (events.js:180:16) at Socket.emit (events.js:92:17) at Socket._onTimeout (net.js:326:8) at Timer.unrefTimeout [as ontimeout] (timers.js:427:13) at Protocol._enqueue (/vagrant/node_modules/mysql/lib/protocol/Protocol.js:135:48) at Protocol.handshake (/vagrant/node_modules/mysql/lib/protocol/Protocol.js:52:41) at Connection.connect (/vagrant/node_modules/mysql/lib/Connection.js:109:18) at /vagrant/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:41:16 at sequelizeResolver (/vagrant/node_modules/sequelize/lib/promise.js:32:12) at new Promise (/vagrant/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:82:37) at new SequelizePromise (/vagrant/node_modules/sequelize/lib/promise.js:28:17) at ConnectionManager.connect […]

按date范围select原始查询

我使用“sequelize”:“^ 2.0.0-rc3”与pg(postgresql),在这一刻我想做一个date范围的原始查询 ,但sequelize不返回数据。 当我在postgresql数据库中运行相同的查询获得正确的结果。 请帮帮我。 在sequilize: // Init main query var query = "SELECT * FROM" + '"Calls"' + " WHERE " + '"EquipmentId"' + " = 1" + " AND " + '"initDate"' + " >= " + "'2015-02-05 14:40' " + " AND " + '"endDate"' + " <= " + " '2015-02-05 […]

在Sequelize中加载关联

我将Sequelize整合到ActionHero中。 我的初始化程序执行以下操作: // configure the singleton api.sequelize.sequelize = new Sequelize( api.config.sequelize.database, api.config.sequelize.username, api.config.sequelize.password, api.config.sequelize ); // import models var dir = path.normalize(api.projectRoot + '/models'); fs.readdirSync(dir).forEach(function(file){ var nameParts = file.split("/"); var name = nameParts[(nameParts.length – 1)].split(".")[0]; api.models[name] = api.sequelize.sequelize.import(dir + '/' + file); }); // import associations var dir = path.normalize(api.projectRoot + '/models/associations'); // ??? 以下是/ […]