簡體   English   中英

rake db:migrate的奇怪錯誤

[英]Strange error with rake db:migrate

我用谷歌搜索過,似乎什么都沒有。

嘗試為我的項目設置設計時發生此錯誤。 使用gem "devise" devise gem "devise" bundle安裝到我的Gemfile中,然后運行rails g devise:install devise rails g devise:install ,然后使用rails g devise authorize 設計授權創建了一些數據庫遷移,在遷移這些更改后,我得到了這個:

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (2 for 1)/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/attribute_assignment.rb:14:in `assign_attributes'

我應該使用最新的delayed_jobs(根據Gemfile.lock的3.2.4)。 如果問題確實存在於attribute_assignment.rb中並​​且我在本地修復它,那么當我將代碼推送到生產中時它不會只是在那里打破嗎? 這是其他人之前見過的問題嗎? 是Devise還是其他問題? 我該如何解決?

我甚至不知道從哪里開始,但我已經嘗試了捆綁更新,我在谷歌搜索了這個錯誤一段時間,嘗試不同的組合,采取類似的搜索主題和研究,我完全迷失了。 我沒有發現任何相關內容。 我不知道錯誤的真正來源,或任何事情。 我甚至不確定我在尋找什么。

Rails 4.1.2

Ruby 2.0

Ubuntu 12.04 lts

全輸出 -

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
== 20140609160442 DeviseCreateAuthorizes: migrating ===========================
-- create_table(:authorizes)
   -> 0.1993s
-- add_index(:authorizes, :email, {:unique=>true})
   -> 0.0559s
-- add_index(:authorizes, :reset_password_token, {:unique=>true})
   -> 0.0561s
== 20140609160442 DeviseCreateAuthorizes: migrated (0.3121s) ==================

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (2 for 1)/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/attribute_assignment.rb:14:in `assign_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:17:in `perform_attribute_assignment'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:24:in `assign_attributes_with_attr_encrypted'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/core.rb:198:in `initialize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/validations.rb:15:in `create!'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:1023:in `record_version_state_after_migrating'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:993:in `block in execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:1038:in `block in ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `block in transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/connection_adapters/abstract/database_statements.rb:209:in `within_new_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/transactions.rb:208:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:1038:in `ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:991:in `execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:953:in `block in migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:949:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:949:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:807:in `up'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:785:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/railties/databases.rake:34:in `block (2 levels) in <top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/home/josh/TG/tax-guard-internal/bin/rake:8:in `<top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:241:in `load'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:241:in `block in load'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:232:in `load_dependency'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:241:in `load'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
-e:1:in `<main>'
Tasks: TOP => db:migrate

遷移 - (這是自動的,我沒有寫它,也不太了解它。)

class DeviseCreateAuthorizes < ActiveRecord::Migration
  def change
    create_table(:authorizes) do |t|
      ## Database authenticatable
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      t.integer  :sign_in_count, default: 0, null: false
      t.datetime :current_sign_in_at
      t.datetime :last_sign_in_at
      t.string   :current_sign_in_ip
      t.string   :last_sign_in_ip

      ## Confirmable
      # t.string   :confirmation_token
      # t.datetime :confirmed_at
      # t.datetime :confirmation_sent_at
      # t.string   :unconfirmed_email # Only if using reconfirmable

      ## Lockable
      # t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
      # t.string   :unlock_token # Only if unlock strategy is :email or :both
      # t.datetime :locked_at


      t.timestamps
    end

    add_index :authorizes, :email,                unique: true
    add_index :authorizes, :reset_password_token, unique: true
    # add_index :authorizes, :confirmation_token,   unique: true
    # add_index :authorizes, :unlock_token,         unique: true
  end
end

Rails 4.1.0也不起作用,錯誤如下 -

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
== 20140609160442 DeviseCreateAuthorizes: migrating ===========================
-- create_table(:authorizes)
   -> 0.2831s
-- add_index(:authorizes, :email, {:unique=>true})
   -> 0.0666s
-- add_index(:authorizes, :reset_password_token, {:unique=>true})
   -> 0.0559s
== 20140609160442 DeviseCreateAuthorizes: migrated (0.4060s) ==================

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (2 for 1)/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/attribute_assignment.rb:14:in `assign_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:17:in `perform_attribute_assignment'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:24:in `assign_attributes_with_attr_encrypted'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/core.rb:198:in `initialize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/validations.rb:15:in `create!'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:1023:in `record_version_state_after_migrating'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:993:in `block in execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:1038:in `block in ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `block in transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:219:in `within_new_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/transactions.rb:208:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:1038:in `ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:991:in `execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:953:in `block in migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:949:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:949:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:807:in `up'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:785:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/railties/databases.rake:34:in `block (2 levels) in <top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/rake:23:in `load'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/rake:23:in `<main>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/ruby_noexec_wrapper:14:in `eval'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => db:migrate

看起來你已經安裝了protected_attributes gem(它在你的堆棧跟蹤中提到)。 您能否仔細檢查這些遷移所添加的新屬性是否列在各種模型的“attr_accessible”語句中,然后嘗試再次運行rake db:migrate?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM