2011-03-15 40 views
1

我搬到MacPorts的,並試圖運行耙分貝:遷移,但得到遷的MacPorts和遇到問題與database.yml的

$ rake db:migrate(in /Users/me/work/myproject) 
rake aborted! 
Mysql::Error: Table 'myproject_development.users' doesn't exist: SHOW FIELDS FROM `users` 

我想可能是我的database.yml?自從我現在使用macports和mysql5以來,我需要更改哪些內容。在此之前,我所做的唯一的事情就是使用CocoaMySql來創建我的數據庫myproject_development。

development: 
    adapter: mysql 
    encoding: utf8 
    reconnect: false 
    database: myproject_development 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: mysql 
    encoding: utf8 
    reconnect: false 
    database: myproject_test 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

production: 
    adapter: mysql 
    encoding: utf8 
    reconnect: false 
    database: myproject_production 
    pool: 5 
    username: root 
    password: 
    socket: /tmp/mysql.sock 

耙分貝的////////結果:遷移--trace //////////////

   rake db:migrate --trace 
      (in /Users/me/work/myproject) 
      ** Invoke db:migrate (first_time) 
      ** Invoke environment (first_time) 
      ** Execute environment 
      rake aborted! 
      Mysql::Error: Table 'myproject_development.users' doesn't exist: SHOW FIELDS FROM `users` 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract_adapter.rb:219:in `log' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:323:in `execute' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/mysql_adapter.rb:469:in `columns' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:1271:in `columns' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:1284:in `column_names' 
      /opt/local/lib/ruby/gems/1.8/gems/searchlogic-2.5.4/lib/searchlogic/named_scopes/ordering.rb:33:in `ordering_condition_details' 
      /opt/local/lib/ruby/gems/1.8/gems/searchlogic-2.5.4/lib/searchlogic/named_scopes/ordering.rb:25:in `create_condition' 
      /opt/local/lib/ruby/gems/1.8/gems/searchlogic-2.5.4/lib/searchlogic/named_scopes/or_conditions.rb:28:in `create_condition' 
      /opt/local/lib/ruby/gems/1.8/gems/searchlogic-2.5.4/lib/searchlogic/named_scopes/column_conditions.rb:63:in `respond_to?' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/base.rb:1481:in `respond_to?' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/observer.rb:183:in `flatten' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/observer.rb:183:in `observed_classes' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/observer.rb:166:in `initialize' 
      /opt/local/lib/ruby/1.8/singleton.rb:94:in `new' 
      /opt/local/lib/ruby/1.8/singleton.rb:94:in `instance' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/observer.rb:38:in `instantiate_observers' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/observer.rb:36:in `each' 
      /Users/me/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/observer.rb:36:in `instantiate_observers' 
      /Users/me/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:15:in `define_dispatcher_callbacks' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:182:in `call' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:182:in `evaluate_method' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:166:in `call' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `run' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `each' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `send' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:90:in `run' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/callbacks.rb:276:in `run_callbacks' 
      /Users/me/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:51:in `send' 
      /Users/me/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_controller/dispatcher.rb:51:in `run_prepare_callbacks' 
      /Users/me/.gem/ruby/1.8/gems/rails-2.3.5/lib/initializer.rb:631:in `prepare_dispatcher' 
      /Users/me/.gem/ruby/1.8/gems/rails-2.3.5/lib/initializer.rb:185:in `process' 
      /Users/me/.gem/ruby/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send' 
      /Users/me/.gem/ruby/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run' 
      /Users/me/work/myproject/config/environment.rb:14 
      /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
      /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in' 
      /Users/me/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
      /Users/me/.gem/ruby/1.8/gems/rails-2.3.5/lib/tasks/misc.rake:4 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' 
      /opt/local/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain' 
      /opt/local/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
      /opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 
      /opt/local/bin/rake:19:in `load' 
      /opt/local/bin/rake:19 

回答

0

你的應用程序找不到mysql表。

基本上就意味着幾件事情:

  1. 你連接到正確的數據庫?
  2. 你的數據庫是最新的嗎?
  3. 你有正確的憑據來訪問分貝?
  4. 你有沒有正確的寶石?
  5. 既然是mysql,你是否連接到正確的套接字?

檢查所有這些,你可能會發現你的數據庫有什麼問題。一些額外的指針:

  1. 你確定你的遷移是正確的,爲了? (你不是從表中選擇尚未創建的,是嗎?)
+0

我創建數據庫,然後運行耙分貝:它遷移,所以我不其他分貝。 其創建 根 寶石的MySQL 2.8.1上MYSQL5所以不知道 插座連接資源TMP /的mysql.sock 添加的database.yml以上 – jdog

+0

你能也做了耙分貝,直到我無法更新分貝:遷移 - 跟蹤?您的移民可能不合適? (例如,你有尚不存在的表的rename_column) – corroded

+0

出於某種原因,第4遷移是 001_blah 002_blaadfs 003_blahblah 004_blakdd 20100222171241_create_notices.rb ..... 在這種情況下會怎麼耙運行這些或什麼命令? – jdog

0

你做完rake db:create:all

+0

是的,我已經做了耙分貝:創建:所有 – jdog