在 db/migrate
文件夹中添加迁移文件并运行 rake db:migrate
后,我想回到上一步,我认为使用 VERSION=n
是正确的方法,但我不知道 n 的正确值使用。是否有任何命令可以检查当前的 n 值?
如果有人能提供有关如何使用 rake db:migrate
的完整说明,那就太好了。
对于初学者
rake db:rollback
会让您后退一步
然后
rake db:rollback STEP=n
将为您回滚 n
个迁移,其中 n
是您要回滚的最近迁移的数量。
更多参考资料here。
回滚最近的迁移:
rake db:rollback
回滚 n
个最近的迁移:
rake db:rollback STEP=n
您可以在 Rails Guide for running migrations 上找到有关使用 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 指南中的 Running Migrations)
最好的方法是通过使用 down 或 up 再次运行特定迁移(在 rails 4 中。它的变化)
rails db:migrate:up VERSION=timestamp
现在你如何获得时间戳。走这条路
/db/迁移
确定要还原的迁移文件。从该文件名中选择时间戳。
如果版本是 20150616132425
,则使用:
rails db:migrate:down VERSION=20150616132425
其他人已经回答了您如何回滚,但您也询问了如何识别迁移的版本号。
rake db:migrate:status 列出了您的迁移版本、名称和状态(向上或向下)
您还可以找到迁移文件,其中包含文件名中的时间戳,即版本号。迁移位于文件夹中:/db/migrate
try {
$result=DB::table('users')->whereExists(function ($Query){
$Query->where('id','<','14162756');
$Query->whereBetween('password',[14162756,48384486]);
$Query->whereIn('id',[3,8,12]);
});
}catch (\Exception $error){
Log::error($error);
DB::rollBack(1);
return redirect()->route('bye');
}