module.exports = function (sequelize, DataTypes) { var Post = sequelize.define('Post', { uuid: { type: DataTypes.STRING(50), unique: true, allowNull: false }, title: { type: DataTypes.STRING(500), allowNull: true }, slug: { type: DataTypes.STRING(500), unique: false, allowNull: true }, tags: { type: DataTypes.STRING(2000), unique: false, allowNull: true }, entry_html: { type: DataTypes.TEXT, unique: false, allowNull: true }, entry_plaintext: { type: DataTypes.TEXT, unique: false, allowNull: true }, feature_image: { type: DataTypes.STRING, unique: false, allowNull: true }, page: { type: DataTypes.BOOLEAN, unique: false, allowNull: true }, featured: { type: DataTypes.BOOLEAN, unique: false, allowNull: true }, author_id: { type: DataTypes.INTEGER, unique: false, allowNull: true }, origin_date: { type: DataTypes.INTEGER, unique: false, allowNull: true } }, { timestamps: true, // don't delete database entries but set the newly added attribute deletedAt // to the current date (when deletion was done). paranoid will only work if // timestamps are enabled paranoid: true, // don't use camelcase for automatically added attributes but underscore style // so updatedAt will be updated_at underscored: true, // disable the modification of table names; By default, sequelize will automatically // transform all passed model names (first parameter of define) into plural. // if you don't want that, set the following freezeTableName: false, // define the table's name tableName: 'Posts', // Enable optimistic locking. When enabled, sequelize will add a version count attriubte // to the model and throw an OptimisticLockingError error when stale instances are saved. // Set to true or a string with the attribute name you want to use to enable. version: true }); return Post; };