我有一个迁移文件db\migrate\20100905201547_create_blocks.rb。
如何具体回滚该迁移文件?
我有一个迁移文件db\migrate\20100905201547_create_blocks.rb。
如何具体回滚该迁移文件?
当前回答
Use:
rake db:migrate:down VERSION=your_migrations's_version_number_here
版本是迁移文件名上的数字前缀。
如何找到版本:
迁移文件存储在rails_root/db/migrate目录中。找到要回滚到的适当文件并复制前缀编号。
例如:
文件名称:20140208031131_create_roles.rb
则版本号为20140208031131。
其他回答
rake db:rollback STEP=1
是一种方法,如果要回滚的迁移是最后应用的迁移。您可以将1替换为您想要返回的任意多次迁移。
例如:
rake db:rollback STEP=5
还将回滚之后发生的所有迁移(4,3,2和1)。
要将所有迁移回滚到(并包括)目标迁移,请使用:(此更正命令是在原始帖子中指出错误的所有注释之后添加的)
rake db:migrate VERSION=20100905201547
为了只回滚一个特定的迁移(乱序)使用:
rake db:migrate:down VERSION=20100905201547
注意,这不会回滚任何调解迁移——只回滚列出的迁移。如果这不是您想要的,您可以安全地运行rake db:migrate,它将只重新运行该文件,跳过之前未回滚的其他文件。
如果你想要迁移一个无序的迁移,还有它的逆db:migrate:up:
rake db:migrate:up VERSION=20100905201547
嗯,在rails中这很简单
rake db:migrate:status
or
rails db:migrate:status
它被修改为以相同的方式处理两者。 然后选择要回滚的版本 然后运行
rake db:migrate VERSION=2013424230423
确保VERSION全部为大写字母。
如果您在迁移的任何步骤中遇到了问题,或者仅仅是卡在中间,请转到迁移文件并注释掉已经迁移的行。
迁移文件是这样的,
20221213051020_my_migrations
在本例中,模型名应该是MyMigration。migration以一个复数词结尾,所以它以migrations结尾。
要回滚这个特定的迁移,您必须理解迁移名称的第一部分(迁移名称前面的数字)是迁移编号。
要回滚这次迁移,只需打开终端并写入,
rake db:migrate:down VERSION=migration_number
最后,你必须在终端中输入回滚这个特定的迁移,
在终端上写下面的命令回滚一个特定的迁移,上面的命令只是给你解释
rake db:migrate:down VERSION=20221213051020
只需记住,每次迁移都有不同的迁移编号,因此请仔细观察并手动复制、粘贴或键入。
Use:
rake db:migrate:down VERSION=your_migrations's_version_number_here
版本是迁移文件名上的数字前缀。
如何找到版本:
迁移文件存储在rails_root/db/migrate目录中。找到要回滚到的适当文件并复制前缀编号。
例如:
文件名称:20140208031131_create_roles.rb
则版本号为20140208031131。
要回滚上次迁移,您可以执行以下操作:
rake db:rollback
如果你想用一个版本回滚一个特定的迁移,你应该做:
rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION
如果要回滚的迁移文件名为db/migrate/20141201122027_create_some_table。rb,那么该迁移的VERSION是20141201122027,这是创建该迁移的时间戳,回滚该迁移的命令将是:
rake db:migrate:down VERSION=20141201122027