1

First I would like to know if anyone has successfully built a Ruby on Rails application on Heroku using the XEROUND Add-on?

My PHP app works fine with the XEROUND Add-on (same database). My Ruby application however, errors on starting. We're sorry, but something went wrong.

On my development machine, When I run:

rails server -e production

the program starts with no problem.

When I push the code to Heroku and start the app I get the Were sorry error.

Any ideas? Is there anyway to output the database variables, right after they are assigned? As far as I know this would mean modifying the active-record adapter. Is this a problem with Ruby itself? Should it have even gotten into the connection pool? Would I be better off using XEROUND outside of Heroku (not as an Add-on)?


My database.yml contains

production:
  adapter: mysql2
  encoding: utf8
  database: <%= ENV['XEROUND_DATABASE_NAME'] %>
  username: <%= ENV['XEROUND_DATABASE_USERNAME'] %>
  password: <%= ENV['XEROUND_DATABASE_PASSWORD'] %>
  host:  <%= ENV['XEROUND_DATABASE_HOST'] %>
  port:  <%= ENV['XEROUND_DATABASE_PORT'] %>

I get the same message when I hardcode the values.


Build information on Heroku:

git push heroku master
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 1.19 KiB, done.
Total 10 (delta 7), reused 0 (delta 0)

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.2.1
       Running: bundle install --without development:test --path vendor/bundle - -binstubs bin/
       Fetching gem metadata from ....rubygems.org/.........
       Using rake (0.9.2.2)
       Using i18n (0.6.1)
       Using multi_json (1.3.6)
       Using activesupport (3.2.1)
       Using builder (3.0.3)
       Using activemodel (3.2.1)
       Using erubis (2.7.0)
       Using journey (1.0.4)
       Using rack (1.4.1)
       Using rack-cache (1.2)
       Using rack-test (0.6.2)
       Using hike (1.2.1)
       Using tilt (1.3.3)
       Using sprockets (2.1.3)
       Using actionpack (3.2.1)
       Using mime-types (1.19)
       Using polyglot (0.3.3)
       Using treetop (1.4.10)
       Using mail (2.4.4)
       Using actionmailer (3.2.1)
       Using arel (3.0.2)
       Using tzinfo (0.3.33)
       Using activerecord (3.2.1)
       Using mysql2 (0.3.11)
       Using activerecord-mysql2-adapter (0.0.3)
       Using activeresource (3.2.1)
       Using bundler (1.2.1)
       Using coffee-script-source (1.3.3)
       Using execjs (1.4.0)
       Using coffee-script (2.2.0)
       Using rack-ssl (1.3.2)
       Using json (1.7.5)
       Using rdoc (3.12)
       Using thor (0.14.6)
       Using railties (3.2.1)
       Using coffee-rails (3.2.2)
       Using jquery-rails (2.1.3)
       Using rails (3.2.1)
       Using sass (3.2.1)
       Using sass-rails (3.2.5)
       Using uglifier (1.3.0)
       Your bundle is complete! It was installed into ./vendor/bundle
       Cleaning up the bundler cache.
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Detected manifest.yml, assuming assets were compiled locally
-----> Rails plugin injection
       Injecting rails_log_stdout
       Injecting rails3_serve_static_assets
-----> Discovering process types
       Procfile declares types      -> (none)
       Default types for Ruby/Rails -> console, rake, web, worker
-----> Compiled slug size: 8.7MB
-----> Launching... done, v18
       ....shielded-brushlands-3293.herokuapp.com deployed to Heroku

To git@heroku.com:shielded-brushlands-3293.git
   73c5cb6..c391a47  master -> master

The Heroku log shows:

2012-09-30T00:58:10+00:00 app[web.1]: => Booting WEBrick
2012-09-30T00:58:10+00:00 app[web.1]: => Rails 3.2.1 application starting in production on ...0.0.0.0:6832
2012-09-30T00:58:10+00:00 app[web.1]: => Call with -d to detach
2012-09-30T00:58:10+00:00 app[web.1]: => Ctrl-C to shutdown server
2012-09-30T00:58:10+00:00 app[web.1]: Started GET "/" for 76.87.97.210 at 2012-09-30 00:58:10 +0000
2012-09-30T00:58:15+00:00 heroku[router]: GET shielded-brushlands-3293.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=4529ms status=500 bytes=643
2012-09-30T00:58:15+00:00 app[web.1]: ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished):
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/rack/logger.rb:26:in `call_app'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/rack/logger.rb:16:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lock.rb:15:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/rack/log_tailer.rb:14:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/request_id.rb:22:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/static.rb:53:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/webrick.rb:59:in `service'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/runtime.rb:17:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in `fetch'
2012-09-30T00:58:15+00:00 app[web.1]:   /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/engine.rb:479:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/query_cache.rb:67:in `rescue in call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/content_length.rb:14:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/railties-3.2.1/lib/rails/application.rb:220:in `call'
2012-09-30T00:58:15+00:00 app[web.1]: cache: [GET /] miss
2012-09-30T00:58:15+00:00 app[web.1]:
2012-09-30T00:58:15+00:00 app[web.1]:
2012-09-30T00:58:15+00:00 app[web.1]:   /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/query_cache.rb:61:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:443:in `call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/callbacks.rb:405:in `_run__2306900267479677068__call__3522025195442796026__callbacks'
2012-09-30T00:58:15+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/callbacks.rb:405:in `__run_callback'
2012-09-30T00:58:15+00:00 heroku[router]: GET shielded-brushlands-3293.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=17ms status=200 bytes=0
2012-09-30T00:58:15+00:00 app[web.1]: cache: [GET /favicon.ico] miss, store

The gemfile.lock

GEM
  remote: ....rubygems.org/
  specs:
    actionmailer (3.2.1)
      actionpack (= 3.2.1)
      mail (~> 2.4.0)
    actionpack (3.2.1)
      activemodel (= 3.2.1)
      activesupport (= 3.2.1)
      builder (~> 3.0.0)
      erubis (~> 2.7.0)
      journey (~> 1.0.1)
      rack (~> 1.4.0)
      rack-cache (~> 1.1)
      rack-test (~> 0.6.1)
      sprockets (~> 2.1.2)
    activemodel (3.2.1)
      activesupport (= 3.2.1)
      builder (~> 3.0.0)
      activerecord (3.2.1)
      activemodel (= 3.2.1)
      activesupport (= 3.2.1)
      arel (~> 3.0.0)
      tzinfo (~> 0.3.29)
    activerecord-mysql2-adapter (0.0.3)
      mysql2
    activeresource (3.2.1)
      activemodel (= 3.2.1)
      activesupport (= 3.2.1)
    activesupport (3.2.1)
      i18n (~> 0.6)
      multi_json (~> 1.0)
    arel (3.0.2)
    builder (3.0.0)
    coffee-rails (3.2.2)
      coffee-script (>= 2.2.0)
      railties (~> 3.2.0)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.3.3)
    erubis (2.7.0)
    execjs (1.4.0)
      multi_json (~> 1.0)
    hike (1.2.1)
    i18n (0.6.0)
    journey (1.0.4)
    jquery-rails (2.1.1)
      railties (>= 3.1.0, < 5.0)
      thor (~> 0.14)
    json (1.7.5)
    mail (2.4.4)
      i18n (>= 0.4.0)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.19)
    multi_json (1.3.6)
    mysql2 (0.3.11)
    polyglot (0.3.3)
    rack (1.4.1)
    rack-cache (1.2)
      rack (>= 0.4)
    rack-ssl (1.3.2)
      rack
    rack-test (0.6.1)
      rack (>= 1.0)
    rails (3.2.1)
      actionmailer (= 3.2.1)
      actionpack (= 3.2.1)
      activerecord (= 3.2.1)
      activeresource (= 3.2.1)
      activesupport (= 3.2.1)
      bundler (~> 1.0)
      railties (= 3.2.1)
    railties (3.2.1)
      actionpack (= 3.2.1)
      activesupport (= 3.2.1)
      rack-ssl (~> 1.3.2)
      rake (>= 0.8.7)
      rdoc (~> 3.4)
      thor (~> 0.14.6)
    rake (0.9.2.2)
    rdoc (3.12)
      json (~> 1.4)
    sass (3.2.1)
    sass-rails (3.2.5)
      railties (~> 3.2.0)
      sass (>= 3.1.10)
      tilt (~> 1.3)
    sprockets (2.1.3)
      hike (~> 1.2)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    thor (0.14.6)
    tilt (1.3.3)
    treetop (1.4.10)
      polyglot
      polyglot (>= 0.3.1)
    tzinfo (0.3.33)
    uglifier (1.2.7)
      execjs (>= 0.3.0)
      multi_json (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  activerecord-mysql2-adapter
  coffee-rails (~> 3.2.1)
  jquery-rails
  mysql2
  rails (= 3.2.1)
  sass-rails (~> 3.2.3)
  uglifier (>= 1.0.3)

ronalchn
  • 12,225
  • 10
  • 51
  • 61

2 Answers2

0

I did an internet search on: xeround heroku ruby

The first item on the list: https://devcenter.heroku.com/articles/xeround

So if I can use heroku config to set variables, then I should be able to see all variables Next search on: heroku config

The first item on the list: https://devcenter.heroku.com/articles/config-vars

In the config-vars article (from 2nd search) I can issue the command: heroku config

heroku config
 !    autoupdate in progress
=== shielded-brushlands-3293 Config Vars
DATABASE_URL:                       postgres://hvsosprakvuedm:v5QU211mYByXbBIdAxa3s4oMff@ec2-107-20-195-105.compute-1.amazonaws.com:5432/dehgili4ph7ih7
GEM_PATH:                           vendor/bundle/ruby/1.9.1
LANG:                               en_US.UTF-8
PATH:                               bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
RACK_ENV:                           production
RAILS_ENV:                          production
XEROUND_DATABASE_ADAPTER:           mysql
XEROUND_DATABASE_FAILOVER_ADAPTER:  mysql
XEROUND_DATABASE_FAILOVER_HOST:     instance27464.db.xeround.com.
XEROUND_DATABASE_FAILOVER_NAME:     app7912272
XEROUND_DATABASE_FAILOVER_PASSWORD: xxxxx
XEROUND_DATABASE_FAILOVER_PORT:     16304
XEROUND_DATABASE_FAILOVER_URL:      mysql://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
XEROUND_DATABASE_FAILOVER_USERNAME: app7912272
XEROUND_DATABASE_HOST:              instance27464.db.xeround.com.
XEROUND_DATABASE_INTERNAL_ADAPTER:  mysql
XEROUND_DATABASE_INTERNAL_HOST:     int.instance27464.db.xeround.com.
XEROUND_DATABASE_INTERNAL_NAME:     app7912272
XEROUND_DATABASE_INTERNAL_PASSWORD: xxxxx
XEROUND_DATABASE_INTERNAL_PORT:     16304
XEROUND_DATABASE_INTERNAL_URL:      mysql://app7912272:xxxx@int.instance27464.db.xeround.com.:16304/app7912272
XEROUND_DATABASE_INTERNAL_USERNAME: app7912272
XEROUND_DATABASE_NAME:              app7912272
XEROUND_DATABASE_PASSWORD:          xxxxx
XEROUND_DATABASE_PORT:              16304
XEROUND_DATABASE_URL:               mysql://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
XEROUND_DATABASE_USERNAME:          app7912272

The first one caught my attention, its pointing to a postgres location. Does it matter? I'm not referencing DATABASE_URL.

The xeround article (from 1st search) contained a line, but didn't get into why, it just said do it.


Connecting to xeround The Xeround add-on will store the database’s URLs in two config vars: XEROUND_DATABASE_URL and XEROUND_DATABASE_INTERNAL_URL

The “internal” URL is translated to internal IP addresses and should be used when accessing your database from within the same datacenter. The first URL is used for connecting from outside.

Copy the value of the config variable that is relevant for you -

$ heroku config:add DATABASE_URL=(URL config vars)


Hmmm? It is not a variable I refrence in my program, nor is it set on my local machine.

Here it goes: Since this is supposed to be a cloud database, I should not need to know anything about datacenter locations, so going with external.

heroku config:add DATABASE_URL=mysql://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
Setting config vars and restarting shielded-brushlands-3293...  !
Autoupdate in progress
done, v20
DATABASE_URL: mysql://app7912272:XXXX@instance27464.db.xeround.com.:16304/app7912272

Lets see if it comes up.... Crap

Okay set it to internal:

heroku config:add DATABASE_URL=mysql://app7912272:xxxx@int.instance27464.db.xeround.com.:16304/app7912272

Lets see if it comes up.... Crap II

I also noticed there are two variables called XEROUND_DATABASE_ADAPTER, XEROUND_DATABASE_FAILOVER_ADAPTER and XEROUND_DATABASE_INTERNAL_ADAPTER. They are both set to mysql. I am using mysql2.

heroku config:add XEROUND_DATABASE_ADAPTER=mysql2
heroku config:add XEROUND_DATABASE_FAILOVER_ADAPTER=mysql2
herokU config:add XEROUND_DATABASE_INTERNAL_ADAPTER=mysql2

Lets see if it comes up.... Crap III

Further down in the article:

Each of the URLs contains a string of the following syntax:

mysql://username:password@host:port/database

The parts out of which the URLs are made of are also set for your convenience in the following environment variables:

XEROUND_DATABASE_ADAPTER
XEROUND_DATABASE_USERNAME
XEROUND_DATABASE_PASSWORD
XEROUND_DATABASE_HOST
XEROUND_DATABASE_PORT
XEROUND_DATABASE_NAME

XEROUND_DATABASE_INTERNAL_ADAPTER
XEROUND_DATABASE_INTERNAL_USERNAME
XEROUND_DATABASE_INTERNAL_PASSWORD
XEROUND_DATABASE_INTERNAL_HOST
XEROUND_DATABASE_INTERNAL_PORT
XEROUND_DATABASE_INTERNAL_NAME

Anyone who has been around programming long enough, probably knows where this is going. Sometimes you do things, even though they make no sense.

So the mysql: is derived from the adapter. Update the url variables as well:

heroku config:add DATABASE_URL=mysql2://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
heroku config:add XEROUND_DATABASE_URL=mysql2://app7912272:xxxxxx@instance27464.db.xeround.com.:16304/app7912272
heroku config:add XEROUND_DATABASE_FAILOVER_URL=mysql2://app7912272:xxxxxx@instance27464.db.xeround.com.:16304/app7912272
herokU config:add XEROUND_DATABASE_INTERNAL_URL=mysql2://app7912272:xxxxxx@instance27464.db.xeround.com.:16304/app7912272

No crap, the application came up

A final look:

heroku config
 !    autoupdate in progress
=== shielded-brushlands-3293 Config Vars
DATABASE_URL:                       mysql2://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
GEM_PATH:                           vendor/bundle/ruby/1.9.1
LANG:                               en_US.UTF-8
PATH:                               bin:vendor/bundle/ruby/1.9.1/bin:/usr/local bin:/usr/bin:/bin
RACK_ENV:                           production
RAILS_ENV:                          production
XEROUND_DATABASE_ADAPTER:           mysql2
XEROUND_DATABASE_FAILOVER_ADAPTER:  mysql2
XEROUND_DATABASE_FAILOVER_HOST:     instance27464.db.xeround.com.
XEROUND_DATABASE_FAILOVER_NAME:     app7912272
XEROUND_DATABASE_FAILOVER_PASSWORD: xxxx
XEROUND_DATABASE_FAILOVER_PORT:     16304
XEROUND_DATABASE_FAILOVER_URL:      mysql2://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
XEROUND_DATABASE_FAILOVER_USERNAME: app7912272
XEROUND_DATABASE_HOST:              instance27464.db.xeround.com.
XEROUND_DATABASE_INTERNAL_ADAPTER:  mysql2
XEROUND_DATABASE_INTERNAL_HOST:     int.instance27464.db.xeround.com.
XEROUND_DATABASE_INTERNAL_NAME:     app7912272
XEROUND_DATABASE_INTERNAL_PASSWORD: xxxx
XEROUND_DATABASE_INTERNAL_PORT:     16304
XEROUND_DATABASE_INTERNAL_URL:      mysql2://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
XEROUND_DATABASE_INTERNAL_USERNAME: app7912272
XEROUND_DATABASE_NAME:              app7912272
XEROUND_DATABASE_PASSWORD:          xxxx
XEROUND_DATABASE_PORT:              16304
XEROUND_DATABASE_URL:               mysql2://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272
XEROUND_DATABASE_USERNAME:          app7912272
0

Since the mysql2 gem is the default w/ Rails 3 all you need to do is make sure you have "gem 'mysql2'" in your gemfile, and run bundle install, commit/push to heroku

Then of course use your URL listed in heroku config under "XEROUND_DATABASE_URL"

heroku config:add DATABASE_URL=mysql2://app7912272:xxxx@instance27464.db.xeround.com.:16304/app7912272

Note the changing the mysql:// to mysql2:// (this is the key)

Then

heroku restart

I JUST did this on a brand new Rails 3.2.9 Heroku app running Xeround with success. There was no need to change the adapter to "mysql2"

Todd
  • 195
  • 2
  • 11
  • Note I just posted this because someone commented your other solution wasn't working for them. – Todd Dec 17 '12 at 20:18