在db/migrate
文件夹中添加迁移文件并运行rake db:migrate
后,我想回到上一步,我认为使用VERSION=n
是正确的方法,但我不会不知道使用n的正确值。有没有任何命令来检查当前的n值?如何使用rake db回滚一个步骤:migrate
如果任何人都可以提供关于如何使用rake db:migrate
的完整说明,那将是非常好的。
在db/migrate
文件夹中添加迁移文件并运行rake db:migrate
后,我想回到上一步,我认为使用VERSION=n
是正确的方法,但我不会不知道使用n的正确值。有没有任何命令来检查当前的n值?如何使用rake db回滚一个步骤:migrate
如果任何人都可以提供关于如何使用rake db:migrate
的完整说明,那将是非常好的。
回滚最近的迁移:
rake db:rollback
回退n
最近的迁移:
rake db:rollback STEP=n
你可以找到关于使用Rails的迁移任务的完整指示耙上Rails Guide for running migrations 。
下面是更多一些:
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的指南Running Migrations)
最好的办法是通过再次向下运行的特定迁移或向上(在轨4.的变化)
导轨分贝:迁移:最多VERSION =时间戳
现在您如何获得时间戳。 转到这条路
/DB /迁移
标识要revert.pick从该文件名中的时间戳迁移文件。
虽然这并没有回答这个问题,它确实是最好的方法。逐步回滚可能会导致错误,特别是在组中使用软件时。 – steel 2016-08-24 21:26:03
其他人已经回答了您如何回滚,但您也问过如何确定迁移的版本号。
rake db:migrate:status
给你的迁移版本,名称和状态(向上或向下)/db/migrate
顺便说一句,如果你运行状态命令,你可能会看到如下行: **********没有文件********** 这些迁移不存在于你当前的分支如果你使用git。 – 2017-10-20 08:32:17
当耙分贝:回滚没有工作回滚最近的迁移,我不得不用耙分贝:迁移VERSION = <第二个版本日期>它工作得很好 – Omni 2015-03-26 03:57:50