sequelize-auto --config选项

时间:2018-09-25 18:13:46

标签: node.js sequelize.js sequelize-auto

我已经建立了一个数据库,并且正在Sequelize ORM中使用它。该数据库已经具有时间戳列,分别为“ created_at”和“ updated_at”。

要生成sequelize模型,我使用了sequelize-auto,它用一个命令生成了所有模型。但是当我使用任何模型来获取数据时。它返回错误“ unknown column createdAt”。

因此,我手动打开了一个模型文件,并用“ underscored:true”对其进行了编辑,从而解决了该问题。 但是我希望为所有模型全局设置此选项。因此,在谷歌搜索一段时间后,我开始使用“ sequelize-auto”命令来了解-c选项。

所以我创建了一个json文件,并在-c选项中将路径传递给了该文件。但是同样,所有模型都没有“强调”选项。

我按如下方式使用此选项

sequelize-auto -o "./models" -d sequelize_auto_test -h localhost -u my_username -x my_password -e mysql -c ./config/config.json

我也将此命令与引号一起使用

sequelize-auto -o "./models" -d sequelize_auto_test -h localhost -u my_username -x my_password -e mysql -c "./config/config.json"

2 个答案:

答案 0 :(得分:3)

使用-a(--additional)标志而不是-c来包含JSON文件中的其他模型选项。

这是命令行帮助所说的:

-a, --additional       Path to a json file containing model definitions (for
                         all tables) which are to be defined within a model's
                         configuration parameter. For more info:
                         https://sequelize.readthedocs.org/en/latest/docs/models
                         -definition/#configuration

答案 1 :(得分:2)

您必须简单地写下./config/config.json:

{
   "underscored": true
}

就我而言,我已经拥有了created_at和updated_at,因此让续集不自动检索并包括模式,我必须在配置中进行设置:

{ 
   "timestamps": false,
   "schema": "sch_hrms"
}

然后,再次执行sequelize-auto。

所有模型都会自动包含该选项。

-ManzTIHAGI