如何使用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