是否有一个rake任务,显示在一个Rails应用程序挂起的迁移?
Answer 1:
rake db:migrate:status
(Rails的3〜5)或rails db:migrate:status
(导轨5)将实现此目的。 见这个承诺 。
Answer 2:
有rake db:abort_if_pending_migrations
(至少在Rails的2.3.3,不知道当它被引入)。 描述说,“如果有挂起迁移引发错误”。 这似乎是用来更多地用于其他任务的先决条件,但我猜你可以用它为您的目的。
编辑:这里是输出的刚刚产生的,而不是运行“测试”迁移之后的示例
rails_project theIV$ rake db:abort_if_pending_migrations
(in /Users/theIV/Sites/rails_project/)
You have 1 pending migrations:
20090828200602 Test
Run "rake db:migrate" to update your database then try again.
Answer 3:
rake db:version
会做到这一点on Rails的2。
Answer 4:
此命令将列出所有迁移对自己的状态( UP
或DOWN
)
导轨3和4
rake db:migrate:status
轨道5
rake db:migrate:status
# Or
rails db:migrate:status
Answer 5:
这适用于轨道5.2
ActiveRecord::Base.connection.migration_context.needs_migration?
Answer 6:
尝试耙-h(帮助),并看看耙-N(=耙--dry运行)。 所以,大概就像耙-n分贝:迁移应该得到你想要的东西。
Answer 7:
以下命令检查迁移状态:
rake db:migrate:status
要么
当你运行你的服务器,它会显示一个消息,首先运行挂起的迁移。
Answer 8:
可能不太什么OP是要求,但如果你只是需要快速检查是否有任何迁移都等待在rake任务使用,而不诉诸
耙分贝:迁移:状态| 用grep下来(如果你在Windows上可能无法正常工作)
ActiveRecord的:: Migration.check_pending! (引发的ActiveRecord :: PendingMigrationError,你需要抢救)
您可以使用needs_migration? 方法: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
Answer 9:
如果你需要一个bash一行程序,以确定是否运行了迁移(例如,仅在迁移的Heroku释放阶段的命令时,有一个挂起的迁移),这工作:
(rails db:migrate:status | grep "^\s*down") && rails db:migrate || echo "No pending migrations found."
Answer 10:
如果你想看到多少迁移完成或待你可以看到使用以下命令。
rails db:migrate:status
更多此链接: Rails的活动记录迁移