How to use Sequelize in SailsJs
I've moved forward with sequelize as well, there are two project that came out really recently, so i would like to announce them.
It follows the answer by Manuel Darveau, it will fetch all your models, import through sequelize and serves your models as a global variables, you can force the sequelize syncronization with the same way with migrate: 'drop'
sails-hook-sequelize-blueprints
Sails blueprints has saved me a LOT of time, so i've wrote a fork to work with sequelize, it work the same way than original blueprints, and you'll still have the same blueprints configurations such as rest
, shortcuts
, prefix
and so on, since waterline populate models with populateEach() function, it uses include: [{ all: true }]
which the result is the same.
A full example:
$ 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 }}
Your model definition
// user.jsmodule.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: {} }};
That's it.