When I use migrations, I set sync: false.
And to establish associations, my model ends like this:
user.js:
module.exports = function(sequelize, DataTypes) { var User = sequelize.define("User", { "fname": { "type": DataTypes.STRING, "unique": false, "allowNull": false }, "lname": { "type": DataTypes.STRING, "allowNull": false } }, { "tableName": "Users", "classMethods": { "associate": function (models) { Locale.hasMany(models.Permissions); } } }); return User; };
This will create the table anyway if it does not exist. However, I recommend that table creation still be part of the migration. Note that when moving to creating a table to include the id, updatedAt, createdAt, and PermissionId columns (for the example above)
source share