如何使用rake db:migrate只回滚一个步骤

db/migrate文件夹中添加迁移文件并运行rake db:migrate ,我想回到上一步,我认为使用VERSION=n是正确的方法,但是我不知道正确的值ñ使用。 有没有任何命令来检查当前的n值?

如果有人可以提供关于如何使用rake db:migrate完整说明,那将是非常好的。

对于初学者

rake db:rollback将让你回到一步

然后

rake db:rollback STEP=n

将回滚n迁移,其中n是要回滚的最近迁移的数量。

更多参考这里 。

回滚最近的迁移:

 rake db:rollback 

回滚最近的n迁移:

 rake db:rollback STEP=n 

您可以在Rails指南中find有关使用Rails迁移任务进行Rake迁移的完整说明。


还有一些:

  • rake db:migrate – 运行所有尚未运行的迁移
  • rake db:migrate VERSION=20080906120000 – 运行所有必要的迁移(向上或向下)以获得给定的版本
  • rake db:migrate RAILS_ENV=test – 在给定的环境中运行迁移
  • rake db:migrate:redo – 回滚一个迁移并再次运行
  • rake db:migrate:redo STEP=n – 回滚最后的n迁移并再次运行
  • rake db:migrate:up VERSION=20080906120000 – 为给定的迁移运行up方法
  • rake db:migrate:down VERSION=20080906120000 – 为给定的迁移运行down方法

并回答你的问题,你从哪里得到一个迁移的版本号:

版本是迁移文件名的数字前缀。 例如,要迁移到版本20080906120000运行

 $ rake db:migrate VERSION=20080906120000 

(从Rails指南中的运行迁移 )

最好的方法是再次运行特定的迁移使用向下或向上(在轨道4.这是变化)

rails db:migrate:up VERSION = timestamp

现在你如何得到时间戳。 去这个path

/ DB /迁移

确定要恢复的迁移文件,从该文件名恢复时间戳。

其他人已经回答了你如何回滚,但你也问你如何确定迁移的版本号。

  • rake db:migrate:status给出了您的迁移版本,名称和状态(向上或向下)
  • 您也可以find迁移文件,其中包含文件名中的时间戳,即版本号。 迁移位于文件夹: /db/migrate
Interesting Posts