Skip to content

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中解构获取。其他项尽量不要再去手动修改。

鄂ICP备19018246号-1