sequelize-auto --config选项

我已经 Build 了一个数据库,我正在使用它与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)

3 years ago

使用-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

3 years ago

你必须写下简单的./config/config.json:

{
   "underscored": true
}

在我的情况下,我已经有了created_at和updated_at,所以让sequelize不能自动检索并包含模式,我必须在我的配置上设置:

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

然后,再次执行sequelize-auto .

所有型号都将自动包含该选项 .

-ManzTIHAGI