我有一个迁移文件db\migrate\20100905201547_create_blocks.rb。
如何具体回滚该迁移文件?
我有一个迁移文件db\migrate\20100905201547_create_blocks.rb。
如何具体回滚该迁移文件?
当前回答
迁移使用该命令更改数据库的状态
bundle exec rake db:migrate
我们可以使用
bundle exec rake db:rollback
要从头再来,我们可以用
bundle exec rake db:migrate VERSION=0
正如您可能猜到的那样,将任何其他数字替换为0将迁移到该版本号,其中版本号来自按顺序列出的迁移。
其他回答
对于多个数据库配置(RoR >= v6),您必须在命令中附加数据库名称,例如:
Rails db:rollback:primary,其中primary是config/databases中数据库的名称。Yml文件,回滚上次迁移。与往常一样,您可以在这里使用STEPS属性。 rails db:migrate:down:primary VERSION=your_migration_timestamp,只恢复提供的迁移版本。这里primary也是数据库的名称。
您可以使用down migration命令回退迁移,如下所示:
rake db:migrate:down VERSION=20100905201547
Use:
rake db:migrate:down VERSION=your_migrations's_version_number_here
版本是迁移文件名上的数字前缀。
如何找到版本:
迁移文件存储在rails_root/db/migrate目录中。找到要回滚到的适当文件并复制前缀编号。
例如:
文件名称:20140208031131_create_roles.rb
则版本号为20140208031131。
如果您想从上次迁移中恢复,请使用rake db:rollback命令。它对我很有效!
嗯,在rails中这很简单
rake db:migrate:status
or
rails db:migrate:status
它被修改为以相同的方式处理两者。 然后选择要回滚的版本 然后运行
rake db:migrate VERSION=2013424230423
确保VERSION全部为大写字母。
如果您在迁移的任何步骤中遇到了问题,或者仅仅是卡在中间,请转到迁移文件并注释掉已经迁移的行。