【问题标题】:Migrations are pending. To resolve this issue, run: bin/rails db:migrate RAILS_ENV=development迁移待定。要解决此问题,请运行: bin/rails db:migrate RAILS_ENV=development
【发布时间】:2017-12-10 01:28:52
【问题描述】:

我对 Rails 比较陌生,我正在尝试从我的控制台运行应用程序。但是,当我打开该站点时,我会看到此错误消息。有人对它的含义有任何见解吗?

当我尝试运行“rails db:migrate RAILS_ENV=development”时,我得到了:

Migrations are pending. To resolve this issue, run: bin/rails db:migrate RAILS_ENV=development

当我尝试只运行“rails db:migrate”或“rake db:migrate”时,我得到:

ArgumentError: wrong number of arguments (0 for 1)
from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:600:in `migrate'
from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:573:in `check_pending!'

非常感谢!

【问题讨论】:

  • 你能用rake db:migrate:status的输出更新问题吗?

标签: ruby-on-rails


【解决方案1】:

要解决此问题,运行:bin/rails rake db:migrate RAILS_ENV=development

问题是由于待定迁移而引发的,这些迁移是通过在数据库中的现有活动记录或关系(表)中添加/删除字段来在 /db/migrate 目录中创建的迁移文件。

迁移作为文件存储在 db/migrate 目录中,每个迁移类一个。文件名称的格式为 YYYYMMDDHHMMSS_create_products.rb,即标识迁移的 UTC 时间戳,后跟下划线,后跟迁移名称。迁移类的名称(CamelCased 版本)应与文件名的后半部分匹配。例如,20080906120000_create_products.rb 应该定义类 CreateProducts,20080906120001_add_details_to_products.rb 应该定义 AddDetailsToProducts。 Rails 使用此时间戳来确定应该运行哪个迁移以及以什么顺序运行,因此如果您要从另一个应用程序复制迁移或自己生成文件,请注意其在顺序中的位置。

示例: $bin/rails 生成迁移 AddPartNumberToProducts

这将创建一个空但名称恰当的迁移:

  class AddPartNumberToProducts < ActiveRecord::Migration[5.0]
    def change
    end
  end

如果迁移名称的格式为“AddXXXToYYY”或“RemoveXXXFromYYY”,并且后跟列名和类型的列表,则将创建包含适当的 add_column 和 remove_column 语句的迁移。

   $ bin/rails generate migration AddPartNumberToProducts part_number:string

会生成

   class AddPartNumberToProducts < ActiveRecord::Migration[5.0]
     def change
       add_column :products, :part_number, :string
     end
   end

参考:http://guides.rubyonrails.org/active_record_migrations.html

【讨论】:

    【解决方案2】:

    转到您的应用文件夹并运行以下提及的命令:

    bin/rails db:migrate RAILS_ENV=development
    

    【讨论】:

      【解决方案3】:

      我运行了命令

      # wait until this completes successfully before continuing
      sudo gitlab-ctl reconfigure
      
      
      sudo gitlab-ctl restart
      

      它为我解决了问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-15
        • 2015-01-27
        • 1970-01-01
        • 2015-04-01
        • 2014-02-08
        • 2014-02-14
        相关资源
        最近更新 更多