How to use Sequelize in SailsJs How to use Sequelize in SailsJs express express

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.

sails-hook-sequelize:

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.