代码之家  ›  专栏  ›  技术社区  ›  Joe Holloway

在rails中显示挂起的迁移

  •  144
  • Joe Holloway  · 技术社区  · 15 年前

    是否有rake任务显示rails应用程序中挂起的迁移?

    9 回复  |  直到 9 年前
        1
  •  279
  •   Malik Shahzad    5 年前

    rake db:migrate:status (轨道3至5)或 rails db:migrate:status this commit .

    up 表示迁移已运行。 down 表示尚未运行迁移。

        2
  •  40
  •   theIV    15 年前

    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.
    
        3
  •  17
  •   Deepak Mahakale    8 年前

    此命令将列出所有迁移及其状态( UP DOWN

    轨道3和4

    rake db:migrate:status
    

    轨道5

    rake db:migrate:status
    
    # Or
    
    rails db:migrate:status
    
        4
  •  15
  •   gerryster    12 年前

    rake db:version

        5
  •  8
  •   Sairam    6 年前

    这适用于rails 5.2

    ActiveRecord::Base.connection.migration_context.needs_migration?
    
        6
  •  3
  •   Foram    5 年前

    rails db:migrate:status
    

    Rails Active Record Migration

        7
  •  3
  •   niborg    5 年前

    如果您需要bash one命令行程序来确定是否运行迁移(例如,仅在 Heroku release phase command 当存在挂起的迁移)时,这将起作用:

    (rails db:migrate:status | grep "^\s*down") && rails db:migrate || echo "No pending migrations found."
    
        8
  •  2
  •   John Lockwood    15 年前

        9
  •  2
  •   wondersz1    6 年前

    rake db:migrate:status | grep down(如果您在Windows上,可能无法工作)

    ActiveRecord::Migration.check\u挂起!(引发需要挽救的ActiveRecord::PendingMigrationError)

    https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class

        10
  •  1
  •   puneet18    7 年前

    以下命令用于检查迁移状态:

    rake db:migrate:status
    

    运行服务器时,它将显示一条消息,要求首先运行挂起的迁移。