耙子流产!数据库名称不正确?

时间:2010-02-09 02:57:54

标签: ruby-on-rails rake

我希望能够进行一些单元测试,但这正是我得到的。互联网对这个问题保持沉默。 Rails 2.1 如果有任何其他信息有帮助,请告诉我。

    mike@sleepycat:~/projects/myapp$ rake test:units --trace
    (in /home/mike/projects/myapp)
    ** Invoke test:units (first_time)
    ** Invoke db:test:prepare (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    ** Invoke db:abort_if_pending_migrations (first_time)
    ** Invoke environment 
    ** Execute db:abort_if_pending_migrations
    ** Execute db:test:prepare
    ** Invoke db:test:clone (first_time)
    ** Invoke db:schema:dump (first_time)
    ** Invoke environment 
    ** Execute db:schema:dump
    ** Invoke db:test:purge (first_time)
    ** Invoke environment 
    ** Execute db:test:purge
    rake aborted!
    Mysql::Error: Incorrect database name '': DROP DATABASE IF EXISTS ``
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:299:in `execute'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:384:in `drop_database'
    /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/mysql_adapter.rb:364:in `recreate_database'
    /usr/lib/ruby/gems/1.8/gems/rails-2.1.0/lib/tasks/databases.rake:315
    /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
    /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
    /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
    /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
    /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'

我的database.yml:

    # MySQL (default setup).  Versions 4.1 and 5.0 are recommended.
    #
    # Install the MySQL driver:
    #   gem install mysql
    # On MacOS X:
    #   gem install mysql -- --include=/usr/local/lib
    # On Windows:
    #   gem install mysql
    #       Choose the win32 build.
    #       Install MySQL and put its /bin directory on your path.
    #
    # And be sure to use new-style password hashing:
    #   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
    development:
      adapter: mysql
      database: myapp_development
      username: root
      password: mikespass
      host: 127.0.0.1
      #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
      database: myapp_test
      username: root
      password: mikespass
      host: 127.0.0.1

    production:
      adapter: mysql
      database: myapp_production
      username: root
      password: 

    mikes:
      adapter: mysql
      database: myapp_development
      username: root
      password: mikespass
      host: 127.0.0.1

    staging:
      adapter: mysql
      database: myapp_development
      username: root
      password: mikespass
      host: 127.0.0.1

2 个答案:

答案 0 :(得分:2)

看起来您没有为test文件中的config/database.yml环境指定数据库名称。

答案 1 :(得分:0)

在评论中不能结束,所以我只是把它放在这里


你可以运行脚本/控制台然后执行:

@a = YAML :: load(File.open(“#{RAILS_ROOT} /config/database.yml”))

@a

然后粘贴@a

的内容