Skip to content

Commit

Permalink
Add quotes to Numeric Passwords to force string(jdbcpostgresql)
Browse files Browse the repository at this point in the history
If you have numeric password for your database, like below:
```yaml
development:
  adapter: mysql2
  encoding: utf8
  database: myblog_development
  pool: 5
  username: root
  password: 123456
```


you will get the following obscure error with unhelpful stack-trace

```shell
/home/gaurish/.rvm/gems/ruby-1.9.3-p286-perf/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': can't convert Fixnum into String (TypeError)
        from /home/gaurish/.rvm/gems/ruby-1.9.3-p286-perf/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `initialize'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `mysql2_connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:444:in `new_connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:454:in `checkout_new_connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:425:in `acquire_connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:362:in `block in checkout'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `checkout'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:271:in `block in connection'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:270:in `connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:545:in `retrieve_connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_handling.rb:79:in `retrieve_connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/connection_handling.rb:53:in `connection'
        from /home/gaurish/code/repo/rails/activerecord/lib/active_record/railtie.rb:153:in `block in <class:Railtie>'
        from /home/gaurish/code/repo/rails/railties/lib/rails/initializable.rb:30:in `instance_exec'
        from /home/gaurish/code/repo/rails/railties/lib/rails/initializable.rb:30:in `run'
        from /home/gaurish/code/repo/rails/railties/lib/rails/initializable.rb:55:in `block in run_initializers'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:150:in `block in tsort_each'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:219:in `each_strongly_connected_component_from'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:182:in `block in each_strongly_connected_component'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:180:in `each'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:180:in `each_strongly_connected_component'
        from /home/gaurish/.rvm/rubies/ruby-1.9.3-p286-perf/lib/ruby/1.9.1/tsort.rb:148:in `tsort_each'
        from /home/gaurish/code/repo/rails/railties/lib/rails/initializable.rb:54:in `run_initializers'
        from /home/gaurish/code/repo/rails/railties/lib/rails/application.rb:216:in `initialize!'
        from /home/gaurish/code/repo/rails/railties/lib/rails/railtie/configurable.rb:30:in `method_missing'
        from /tmp/numericpass/config/environment.rb:5:in `<top (required)>'
        from /home/gaurish/code/repo/rails/railties/lib/rails/application.rb:190:in `require'
        from /home/gaurish/code/repo/rails/railties/lib/rails/application.rb:190:in `require_environment!'
        from /home/gaurish/code/repo/rails/railties/lib/rails/commands.rb:70:in `<top (required)>'
        from script/rails:6:in `require'
        from script/rails:6:in `<main>'
```
Looking [Can't convert fixnum to string during rake db:create](http://stackoverflow.com/questions/3765834/cant-convert-fixnum-to-string-during-rake-dbcreate), it seems lot of people have faced the same error.

so adding a note informing about numeric passwords seems like a good idea
  • Loading branch information
gaurish committed Dec 9, 2012
1 parent e5f8b2b commit db9b619
Showing 1 changed file with 2 additions and 0 deletions.
Expand Up @@ -8,6 +8,8 @@ development:
encoding: unicode encoding: unicode
database: <%= app_name %>_development database: <%= app_name %>_development
username: <%= app_name %> username: <%= app_name %>
# Remember to use quotes incase of numeric passwords to force string type to yaml parser
# for example, use "123456" instead of 123456
password: password:


# Connect on a TCP socket. Omitted by default since the client uses a # Connect on a TCP socket. Omitted by default since the client uses a
Expand Down

0 comments on commit db9b619

Please sign in to comment.