Sails blueprints for sequelize ORM
The blueprints waterline replaced with sequelize.
Install sails-hook-sequelize first:
$ npm install sails-hook-sequelize --save
Install this hook with:
$ npm install sails-hook-sequelize-blueprints --save
Sequelize dependencies:
$ npm install --save sequelize
$ npm install --save pg pg-hstore // in case of PostgreSQL
$ npm install --save continuation-local-storage
.sailsrc
"hooks": {
"blueprints": false,
"orm": false,
"pubsub": false
}
Default blueprints configurations
module.exports.blueprints = {
actions: true,
index: true,
shortcuts: true,
rest: true,
prefix: '',
restPrefix: '',
pluralize: false,
populate: true,
defaultLimit: 30,
populateLimit: 30,
autoWatch: true,
}
Sequelize connection
somePostgresqlServer: {
user: 'postgres',
password: '',
database: 'sequelize',
dialect: 'postgres',
options: {
dialect: 'postgres',
host : 'localhost',
port : 5432,
logging: true
}
}
Sequelize model definition
models/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
}
});
user.belongsToMany(affiliation, {
as: 'affiliations',
to: 'users', // must be named as the alias in the related Model
through: 'UserAffiliation',
foreignKey: {
name: 'userId',
as: 'affiliations'
}
});
},
options: {
tableName: 'user',
classMethods: {},
instanceMethods: {},
hooks: {}
}
};
A big thanks to festo/sailsjs-sequelize-example and Manuel Darveau's answer that turn this possible with thier sequelize implementations.
- Fork it!
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -m 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request