如何在SailsJs中使用Sequelize

水线是一个很好的ORM,但我注意到有许多function还没有出现在水线上,但Sequelize已经有了。 所以我决定改用sequelize,但仍然使用Sails来处理其他的事情。 我有search教程如何切换到sequelize,但没有。 我怎样才能取代水线为航行Js的续集?

我也推动了续集,最近有两个项目出来,所以我想宣布它们。

帆-钩sequelize:

它遵循Manuel Darveau的回答,它将获取你所有的模型,通过续集导入并作为一个全局variables提供你的模型,你可以使用与migrate: 'drop'相同的方式强制同步同步migrate: 'drop'

帆形钩-sequelize-蓝图

Sails blueprints为我节省了很多时间,所以我写了一个fork来处理sequelize,它的工作方式和原来的蓝图一样,你仍然会有相同的蓝图configuration,比如restshortcutsprefix等等因为waterline使用populateEach()函数填充模型,所以它使用include: [{ all: true }] ,结果是相同的。

一个完整的例子:

 $ npm install sails-hook-sequelize $ npm install sails-hook-sequelize-blueprints $ npm install sequelize $ npm install pg pg-hstore $ npm install continuation-local-storage 

.sailsrc

 "hooks": { "blueprints": false, "orm": false, "pubsub": false } 

connections.js

 somePostgresqlServer: { user: 'postgres', password: '', database: 'database', dialect: 'postgres', options: { dialect: 'postgres', host : 'localhost', port : 5432, logging: true } } 

你的模型定义

 // user.js module.exports = { attributes: { name: { type: Sequelize.STRING, allowNull: false }, age: { type: Sequelize.INTEGER } }, associations: function() { user.hasMany(image, { foreignKey: { name: 'owner', allowNull: false } }); }, options: { tableName: 'user', classMethods: {}, instanceMethods: {}, hooks: {} } }; 

而已。