1

I am running rake db:migrate on Windows command line in my Project folder..

I am getting this non descriptive error: Cannot convert String to Integer

I've posted the full trace of this error below:

D:\Rails\MyBlog>rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
rake aborted!
can't convert String into Integer
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/l
ib/mysql2/client.rb:44:in `connect'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/l
ib/mysql2/client.rb:44:in `initialize'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/mysql2_adapter.rb:18:in `new'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/mysql2_adapter.rb:18:in `mysql2_connection'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection
'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_c
onnection'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connec
tion'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:356:in `block in check
out'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:265:in `block in conne
ction'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_conne
ction'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_handling.rb:79:in `retrieve_connection'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/connection_handling.rb:53:in `connection'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/migration.rb:863:in `initialize'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/migration.rb:764:in `new'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/migration.rb:764:in `up'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/migration.rb:742:in `migrate'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/acti
ve_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:236:in `call'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:236:in `block in execute'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:231:in `each'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:231:in `execute'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:175:in `block in invoke_with_call_chain'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:168:in `invoke_with_call_chain'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/task.r
b:161:in `invoke'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:149:in `invoke_task'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:106:in `block (2 levels) in top_level'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:106:in `each'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:106:in `block in top_level'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:115:in `run_with_threads'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:100:in `top_level'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:78:in `block in run'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:165:in `standard_exception_handling'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/lib/rake/applic
ation.rb:75:in `run'
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rake-10.1.1/bin/rake:33:in
`<top (required)>'
C:/RailsInstaller/Ruby1.9.3/bin/rake:23:in `load'
C:/RailsInstaller/Ruby1.9.3/bin/rake:23:in `<main>'
Tasks: TOP => db:migrate

D:\Rails\MyBlog>

How can I solve this?? Any Ideas?

EDIT

My Code:

class CreateBlogPosts < ActiveRecord::Migration
  def change
    create_table :blog_posts do |t|
      t.string :title
      t.string :content
      t.datetime :publishDate

      t.timestamps
    end
  end
end

Database.yml

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: mysql2
  encoding: utf8
  database: gts
  username: heuro
  password: userPass
  host: 'localhost'
  port: '3306'
  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: mysql2
    encoding: utf8
    database: gts
    username: heuro
    password: userPass
    host: '127.0.0.1'
    port: '3306'

production:
    adapter: mysql2
    encoding: utf8
    database: gts
    username: heuro
    password: userPass
    host: '127.0.0.1'
    port: '3306'
12
  • Only error, is not enough to help you out.. Need to see the code also. Commented Jan 30, 2014 at 19:48
  • Are you talking about database.yml file? Commented Jan 30, 2014 at 19:49
  • yes, you may have an issue with database.yml Commented Jan 30, 2014 at 19:51
  • You created a migration and updated some migration source in the migration folder? Check there for proper syntax. Without any additional info, I'd say the likelihood is a problem there. Commented Jan 30, 2014 at 19:53
  • I've edited the question.. Can you please see the problem for me.. I'm very frsutated by these errors.. Very very new to rails Commented Jan 30, 2014 at 19:54

2 Answers 2

2

Looking at the source for the mysql2 gem, I think your problem might be that you have the port as a string in your YAML file.

Try changing it to look like this:

development:
  adapter: mysql2
  encoding: utf8
  database: gts
  username: heuro
  password: userPass
  host: 'localhost'
  port: 3306
  socket: /tmp/mysql.sock
Sign up to request clarification or add additional context in comments.

3 Comments

Didnt knew such a simple chnage will make it work.. You are god..! :) You saved me.. :)
Glad that worked! It always helps to check the source to figure out how things like this work, and why exactly they're breaking.
I'll take care in future.. :)
1

Edit your database.yml file to make it look as follows:

development:
  adapter: mysql2
  database: gts
  user: heuro
  password: userPass
  host: localhost
  pool: 5
  timeout: 5000

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.