1

如果我有两个迁移,mig1 和 mig2,我运行 rake db:migrate,然后我回到 mig1 并更改列的默认值,当我再次运行 rake db:migrate 时会反映此更改吗?或者我是否必须为该列进行新的迁移才能进行更改?

4

3 回答 3

2

您可以通过运行以下命令重做给定的 VERSION:

rake db:migrate:down VERSION=___________

rake db:migrate:up VERSION=____________
于 2010-08-05T21:15:00.217 回答
1

您应该进行新的迁移或使用 rakedb:rollback任务移回运行相关迁移之前的数据库版本。不会自动获取对迁移脚本的更改。

您的架构的当前版本会被跟踪并应用于迁移,因此运行 rake db:migrate 不会重新运行旧的迁移。正是由于这个原因,rollback只要您提供了正确self.down的迁移方法,您就可以使用该功能。回滚执行这些向下方法,同时撤消迁移。

然后,您可以编辑迁移并重新迁移。

于 2010-08-05T19:45:55.583 回答
0

rake db:migrate:redo VERSION= _ __ _

于 2010-12-30T15:21:53.230 回答