sequelize-auto自动导出数据库为表模型
表模型在后端的使用非常常见,而定义一个表模型需要考虑诸多因素,费事费力。这里使用sequelize-auto来自动生成sequelize所能识别的表模型。
首先需要全局安装sequelize-auto、sequelize,并根据自己的数据库安装对应依赖,我这里使用的是mysql,所以安装mysql2,如:
powershell
cnpm install -g sequelize-auto sequelize mysql2安装后使用sequelize-auto的对应命令即可生成,这里展示简版命令,默认会在当前命令行目录下生成model文件夹,文件夹里面就是所需要的文件了。
powershell
sequelize-auto -h localhost -d main -u root -x 666666命令详解如下:
powershell
sequelize-auto -h -d -u -x [password] -p [port] --dialect [dialect] -c [/path/to/config] -o [/path/to/models] -t [tableName]在以上参数中,除-h、-d参数外,其它参数都是可选的。各参数选项说明如下:
-h, --host- 数据库的IP/主机名 [必选]-d, --database- 数据库名 [必选]-u, --user- 数据库的用户名。默认将根据数据库类型的默认用户生成数据库名-x, --pass- 数据库的密码。默认为空-p, --port- 数据库连接端口。默认为所使用数据库类型的默认端口号-c, --config- JSON文件,用于Sequelize构造函数的'options'选项对象。参见:http://itbilu.com/nodejs/npm/VkYIaRPz-.html#api-init-o, --output- 模型输出目录。默认会在当前目录下生成'./models'目录-e, --dialect- 所使用的数据库类型(驱动类型)。默认为mysql-a, --additional- 一个包含模型定义参数的JSON文件。参见:http://itbilu.com/nodejs/npm/VkYIaRPz-.html#api-instance-define-t, --tables- 指定所要导出的表,逗号分隔。默认为全部
最后关于导出后文件的使用,我使用的egg框架,Sequelize映射在app.Sequelize上,对应的DataTypes在app.Sequelize.DataTypes上,同时其中的属性也可以直接中app.Sequelize中解构获取。其他项尽量不要再去手动修改。