[英]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.