Sequelize-CLI将列添加到现有模型

cph*_*ill 3 sequelize.js sequelize-cli

我一直在阅读大量的sequelize-cli文档,似乎无法弄清楚如何将列添加到我现有的模型中.我有一个名为的模型,models/team.js并希望添加一个名为role_name模型的列sequelize model:create --name team --attributes role_name:string,但是我收到一条消息要覆盖而不是修改:

Loaded configuration file "config/config.json".
Using environment "development".
The file /Users/user/Desktop/Projects/node/app-repo/app/models/team.js already exists. Run "sequelize model:create --force" to overwrite it.
Run Code Online (Sandbox Code Playgroud)

我不想覆盖使我认为这不是正确使用命令的文件.它还让我想知道cli是否无法实现这一点,必须在迁移文件级别进行调整.

Bha*_*a M 8

您需要另一个迁移文件来添加列.

在您需要添加的向上功能中

 queryInterface.addColumn(
     'nameOfAnExistingTable',
      'nameofTheNewAttribute',
      Sequelize.STRING)
Run Code Online (Sandbox Code Playgroud)

在你需要的向下功能

queryInterface.removeColumn(
      'nameOfAnExistingTable',
      'nameOfTheAttribute')
Run Code Online (Sandbox Code Playgroud)

然后运行迁移.

  • 正如您所建议的,我也这样做了,但模型文件没有使用迁移文件中的新字段进行更新。 (2认同)