Sequilize迁移不运行新代码

时间:2016-09-12 15:05:25

标签: node.js sequelize.js

我需要在数据库表中创建一个新字段。然后我运行以下内容:

*-jar-with-dependencies.jar

一个名为

的新文件
sequelize migration:create

已创建。

我打开该文件并将其写入up-function:

DATETIME_unnamed-migration.js
然后我跑

queryInterface.addColumn(
    'User',
    'postcode',
    Sequelize.STRING
)

表格用户现在有了一个名为" postcode"。

的新字段

那么现在呢?我有一个名为

的文件
sequelize db:migrate

下次我需要添加新字段时,该怎么办? 如果我尝试修改上面的文件然后再次运行db:migrate则没有任何反应。 在控制台上我看到:

DATETIME_unnamed-migration.js

所以sequelize-cli并不关心我的旧迁移文件是否有变化? 每次需要在数据库模式中添加新内容时,是否需要创建新的迁移文件? 然后过了一段时间,带有迁移文件的目录就会满了。 这是普通的做法还是我想要的东西?

1 个答案:

答案 0 :(得分:2)

  

通过迁移,您可以将现有数据库转移到另一个数据库   状态,反之亦然:这些状态转换在迁移中保存   文件,描述了如何进入新状态以及如何进入的状态   恢复更改以恢复旧状态。

我认为迁移文件的想法是跟踪数据库模式的更改和更新。因此,每次要更新数据库模式时,都必须创建一个新的迁移文件。