Como extender el modelo Sequelize.

¿Hay una manera de extender (tal vez heredar) el modelo para agregar ganchos y campos después de que se definió el modelo?

Así que algo como esto:

User = sequelize.define("user", { name: sequelize.String }); makeStateful(User); // adds state,updated,added fields and some hooks 

Esto no es posible en este momento. Pero podría hacerlo fácilmente al revés: defina su mezcla antes y úselo cuando defina el modelo:

 var Sequelize = require('sequelize') , sequelize = new Sequelize('sequelize_test', 'root') var mixin = { attributes: { state: Sequelize.STRING, added_at: Sequelize.DATE }, options: { hooks: { beforeValidate: function(instance, cb) { console.log('Validating!!!') cb() } } } } var User = sequelize.define( 'Model' , Sequelize.Utils._.extend({ username: Sequelize.STRING }, mixin.attributes) , Sequelize.Utils._.extend({ instanceMethods: { foo: function() { return this.username } } }, mixin.options) ) User.sync({ force: true }).success(function() { User.create({ username: 'foo' }).success(function(u) { console.log(u.foo()) // 'foo' }) })