我已经建立了一个数据库,并且正在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"
答案 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