sequelize-mysql-model
v0.1.7
Published
Automatically generate bare sequelize models from your database. And add some custom
Downloads
3
Maintainers
Readme
sequelize-mysql-model
Modify from SequelizeAuto - 0.4.29. Automatically generate models for SequelizeJS.
Programmatic API Only
Mysql Only
Feature Support
comment support
modelNameResolve function support
open this option will disable model camelCase
fileNameResolve function support
open this option will disable camelCaseForFileName
Install
npm install --save-dev sequelize-mysql-model
Prerequisites
You will need to run npm install --save mysql
before using sequelize-mysql-model.
Programmatic API
var SequelizeAuto = require('sequelize-mysql-model')
var db = {
host: 'host',
user: 'user',
password: 'password',
database: 'database',
port: '3306'
};
var auto = new SequelizeAuto(db.database, db.user, db.password, {
host: db.host,
dialect: 'mysql',
port: db.port,
directory: './models',
additional: {
timestamps: false
},
tables: ['f_user', 'f_article', 'f_article_category'],
modelNameResolve: function (table_name) {
if (table_name.indexOf("f_") !== -1) {
return table_name.substring(2)
} else {
return table_name
}
},
fileNameResolve: function (table_name) {
if (table_name.indexOf("f_") !== -1) {
return table_name.substring(2)
} else {
return table_name
}
}
});
auto.run(function (err) {
if (err) throw err;
console.log(auto.tables); // table list
console.log(auto.foreignKeys); // foreign key list
});
Produces a file/files such as ./models/article.js which looks like:
module.exports = function (sequelize, DataTypes) {
return sequelize.define('article', {
id: {
allowNull: false,
primaryKey: true,
type: DataTypes.STRING(30),
title: "id",
formType: "TEXT"
},
article_category_id: {
allowNull: false,
type: DataTypes.STRING(30),
title: "分类id",
formType: "TEXT"
},
name: {
allowNull: false,
type: DataTypes.STRING(50),
title: "名称",
formType: "TEXT"
},
author: {
allowNull: false,
type: DataTypes.STRING(10),
title: "作者",
formType: "TEXT"
},
content: {
allowNull: false,
type: DataTypes.TEXT,
title: "内容",
formType: "TEXT"
},
content_md: {
allowNull: false,
type: DataTypes.TEXT,
title: "markdown源格式",
formType: "TEXT"
},
brief: {
allowNull: false,
type: DataTypes.STRING(400),
title: "摘要",
formType: "TEXT"
},
cover: {
allowNull: false,
type: DataTypes.STRING(100),
title: "封面",
formType: "TEXT"
},
is_show_cover: {
allowNull: false,
defaultValue: '0',
type: DataTypes.INTEGER(4),
title: "是否显示封面",
formType: "SELECT",
formValue: {0: "不显示", 1: "显示"}
},
is_show_comment: {
allowNull: false,
defaultValue: '1',
type: DataTypes.INTEGER(4),
title: "是否显示评论",
formType: "SELECT",
formValue: {0: "不显示", 1: "显示"}
},
is_publish: {
allowNull: false,
defaultValue: '1',
type: DataTypes.INTEGER(4),
title: "是否发布",
formType: "SELECT",
formValue: {0: "未发布", 1: "已发布"}
},
is_show: {
allowNull: false,
defaultValue: '1',
type: DataTypes.INTEGER(4),
title: "是否可见",
formType: "SELECT",
formValue: {0: "不可见", 1: "可见"}
},
tag: {
allowNull: true,
type: DataTypes.STRING(100),
title: "标签",
formType: "TEXT"
},
seo_url: {
allowNull: true,
type: DataTypes.STRING(50),
title: "SEO链接",
formType: "TEXT",
unique: true
},
seo_keywords: {
allowNull: true,
type: DataTypes.STRING(200),
title: "SEO关键词",
formType: "TEXT"
},
seo_description: {
allowNull: true,
type: DataTypes.STRING(200),
title: "SEO描述",
formType: "TEXT"
},
publish_at: {
allowNull: true,
type: DataTypes.STRING(24),
title: "发布日期",
formType: "TEXT"
},
create_at: {
allowNull: true,
type: DataTypes.STRING(24),
title: "创建日期",
formType: "TEXT"
},
create_by: {
allowNull: true,
type: DataTypes.STRING(30),
title: "创建人",
formType: "TEXT"
},
update_at: {
allowNull: true,
type: DataTypes.STRING(24),
title: "更新日期",
formType: "TEXT"
},
update_by: {
allowNull: true,
type: DataTypes.STRING(30),
title: "更新人",
formType: "TEXT"
},
delete_at: {
allowNull: true,
type: DataTypes.STRING(24),
title: "删除日期",
formType: "TEXT"
},
delete_by: {
allowNull: true,
type: DataTypes.STRING(30),
title: "删除人",
formType: "TEXT"
}
}, {
tableName: 'f_article',
timestamps: false
});
};