node package manager

sails-hook-sequelize-blueprints-through

sails-hook-sequelize-blueprints

Sails blueprints for sequelize ORM

Build Status npm version

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)