2016-09-12 60 views
0

我需要在数据库表中创建一个新字段。然后,我运行以下命令:Sequilize迁移不运行新代码

sequelize migration:create 

一个新的文件名为

DATETIME_unnamed-migration.js 

创建。

我打开该文件,并在上功能写:

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

我然后运行

sequelize db:migrate 

表用户现在有一个叫做“邮政编码”新领域。

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

DATETIME_unnamed-migration.js 

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

No migrations were executed, database schema was already up to date. 

所以sequelize-CLI不关心我改变了原来旧的迁移文件呢? 每当我需要在数据库模式中添加新东西时,是否需要创建新的迁移文件? 然后过了一段时间,迁移文件的目录将被填满。 这是普通的方法,还是忽略了一些东西?

回答

2

随着您可以将您现有的数据库到另一 状态以及迁移反之亦然:那些状态转换保存在迁移 文件,这些文件描述了路怎么走,以新的状态,以及如何 恢复更改为了回到旧的状态。

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