Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rake mysql2 "unknown database" error

Tags:

rake

mysql2

I'm following instructions from a hand-over package from a previous group. I don't know too much about rails or mysql2. I am on Windows.

When I do:

rake db:migrate RAILS_ENV=production

This is the output:

C:\jcccf-goslowserver-e30bf00>rake db:migrate RAILS_ENV=production
(in C:/jcccf-goslowserver-e30bf00)
rake aborted!
Unknown database 'goslow_production'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6-x86-mingw32/lib/mysql2/client.r
b:37:in `connect'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6-x86-mingw32/lib/mysql2/client.r
b:37:in `initialize'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6-x86-mingw32/lib/active_record/c
onnection_adapters/mysql2_adapter.rb:14:in `new'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.6-x86-mingw32/lib/active_record/c
onnection_adapters/mysql2_adapter.rb:14:in `mysql2_connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:230:in `new_connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:238:in `checkout_new_connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:194:in `block (2 levels) in checkout'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:190:in `loop'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:190:in `block in checkout'
C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:189:in `checkout'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:96:in `connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:318:in `retrieve_connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_specification.rb:97:in `retrieve_connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/connect
ion_adapters/abstract/connection_specification.rb:89:in `connection'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/migrati
on.rb:486:in `initialize'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/migrati
on.rb:433:in `new'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/migrati
on.rb:433:in `up'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/migrati
on.rb:415:in `migrate'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.1/lib/active_record/railtie
s/databases.rake:142:in `block (2 levels) in <top (required)>'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:634:in `call'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:629:in `each'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:629:in `execute'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:581:in `invoke'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `each'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:1992:in `run'
C:/Ruby192/bin/rake:31:in `<main>'

C:\jcccf-goslowserver-e30bf00>

I've read about having to use db:create first but I'm worried that I'll be erasing what's already there from the handover source code. Does this not make sense?

These are the instructions I was given.

...
3. Configure your MySQL settings in config/database.yml for "production"
4. Open the console (cmd on Windows, Terminal on Mac/Linux) and cd to the GoSlow directory
5. Type "rake db:migrate RAILS_ENV=production" and press enter.
6. Type "rake bootstrap:all RAILS_ENV=production" and press enter.

(then I assume I just do rails server, it doesn't specify)

Here is my database.yml file which is in config/database.yml relative to where I'm typing these commands.

# MySQL.  Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
#   gem install mysql2
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: GoSlow_development
  pool: 5
  username: root
  password:
  host: localhost

# 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: mysql2
  encoding: utf8
  reconnect: false
  database: GoSlow_test
  pool: 5
  username: root
  password:
  host: localhost

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: GoSlow_production
  pool: 5
  username: root
  password: [MyPassword]
  host: localhost

Any thoughts on why it wouldn't be working?

like image 868
Jeremy Avatar asked Jul 20 '11 17:07

Jeremy


2 Answers

Running the command

rake db:create

is enough to avoid the error.

like image 94
Navneet Avatar answered Oct 19 '22 17:10

Navneet


maybe creating the goslow_production DB

CREATE DATABASE goslow_production;
like image 4
jtomasrl Avatar answered Oct 19 '22 16:10

jtomasrl