sails-hook-sequelize-blueprints-through
v0.0.4
Published
Sails blueprints with sequelize for M-M through associations
Downloads
7
Maintainers
Readme
sails-hook-sequelize-blueprints
Sails blueprints for sequelize ORM
The blueprints waterline replaced with sequelize.
#Install
Install sails-hook-sequelize first:
$ npm install sails-hook-sequelize --save
Install this hook with:
$ npm install sails-hook-sequelize-blueprints-through --save
Sequelize dependencies:
$ npm install --save sequelize
$ npm install --save pg pg-hstore // in case of PostgreSQL
$ npm install --save continuation-local-storage
Configuration
.sailsrc
"hooks": {
"blueprints": false,
"orm": false,
"pubsub": false
}
```
## Blueprints
Default blueprints configurations
```javascript
module.exports.blueprints = {
actions: true,
index: true,
shortcuts: true,
rest: true,
prefix: '',
restPrefix: '',
pluralize: false,
populate: true,
autoWatch: true,
}
```
## Connections
Sequelize connection
```javascript
somePostgresqlServer: {
user: 'postgres',
password: '',
database: 'sequelize',
dialect: 'postgres',
options: {
dialect: 'postgres',
host : 'localhost',
port : 5432,
logging: true
}
}
```
## Models
Sequelize model definition
`models/user.js`
```javascript
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: {}
}
};
```
#Contributions
1. Fork it!
2. Create your feature branch: git checkout -b my-new-feature
3. Commit your changes: git commit -m 'Add some feature'
4. Push to the branch: git push origin my-new-feature
5. Submit a pull request
#License
[MIT](./LICENSE)