Rails 迁移 - 寻找旧迁移中的变化?

发布于 2024-09-12 22:04:15 字数 127 浏览 15 评论 0原文

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

If I have two migrations, mig1 and mig2, I run rake db:migrate, then I go back to mig1 and change the default value of a column, will this change be reflected when I run rake db:migrate again? Or do I have to make a new migration just for that column to make the change?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

瞄了个咪的 2024-09-19 22:04:15

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

rake db:migrate:down VERSION=___________

rake db:migrate:up VERSION=____________

You can redo a given VERSION by running the following:

rake db:migrate:down VERSION=___________

rake db:migrate:up VERSION=____________
人疚 2024-09-19 22:04:15

您应该进行新的迁移,或者使用 rake db:rollback 任务移回到运行相关迁移之前的数据库版本。对迁移脚本的更改不会自动生效。

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

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

You should either make a new migration or use the rake db:rollback task to move back to the version of your database before the migration in question was ran. Changes to migration scripts won't be automatically picked up.

The current version of your schema is tracked and applied to migrations, so running rake db:migrate will not rerun old migrations. It is for this reason that you are able to use the rollback feature, as long as you provided correct self.down methods on your migration. Rolling back executes these down methods, undoing the migrations as it goes.

You can then edit the migration and re-migrate.

樱花落人离去 2024-09-19 22:04:15

rake db:migrate:redo VERSION=____

rake db:migrate:redo VERSION=____

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文