I'm using active record in a script that I'm using to parse a text file
and load a mysql database.
It had been working fine for months but we hosed something up really
well. We gem installed Rails 3.2.9 (we'll need to gem install 3.2.10 now
to fix the SQL injection vulnerability)
My script contains:
require 'rubygems'
require 'net/http'
require 'yaml'
require 'active_record'
require 'logger'
#active record DB connection
dbconfig = YAML::load(File.open('database.yml'))
ActiveRecord::Base.establish_connection(dbconfig)
The database.yml contains:
adapter: jdbcmysql
encoding: utf8
reconnect: false
database: foo
pool: 5
username: bar
password: baz
host: localhost
When I run the script, it dies with:
F:\Websites\rsacfod-torque\lib\tasks>jruby -S 209pump.rb
ActiveRecord::AdapterNotFound: database configuration specifies
nonexistent jdbc mysql adapter
establish_connection at
f:/torquebox-2.0.3/jruby/lib/ruby/gems/1.8/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:133
(root) at 209pump.rb:9
All we did was bundle install the newest version of rails for a
completely different app. But I can see this is trying to use the newest
activerecord. Is there some issue with that?
on 2013-01-03 18:32
on 2013-01-03 19:18
You'll need to require a couple of extra gems: gem 'activerecord-jdbc-adapter' gem 'activerecord-jdbcmysql-adapter' # gem 'jdbc-mysql' # I think you don't need this if you have the previous 2 - Keith --- Keith R. Bennett http://about.me/keithrbennett
on 2013-01-03 20:55
Keith B. wrote in post #1090949: > You'll need to require a couple of extra gems: > > gem 'activerecord-jdbc-adapter' > gem 'activerecord-jdbcmysql-adapter' > > # gem 'jdbc-mysql' # I think you don't need this if you have the > previous 2 > > - Keith > > --- > Keith R. Bennett > http://about.me/keithrbennett If I'm not using a Gemfile (this is a standalone script that requires activerecord) is this the same process? Most of my Ruby/JRuby work is in the Rails context, but this script is not.
on 2013-01-03 21:26
It looks like the problem occurs when using version 1.2.5 of activerecord-jdbcmysql-adapter and activerecord-jdbc-adapter I've backed the versions installed down to 1.2.2.1 and it's working again.
on 2013-01-03 21:47
Sorry for giving you the wrong information, Jim. I am kind of curious though how activerecord-jdbc-adapter knows to map the request for the mysql adapter to the respective gem. I guess support for the most common DB's (mysql, sqlite, etc.) are built-in. There is an issue that has been discussed on this list about activerecord-jdbc-adapter. As I understand it, it will be fixed soon. - Keith --- Keith R. Bennett http://about.me/keithrbennett
on 2013-01-03 21:53
Keith B. wrote in post #1090963: > Sorry for giving you the wrong information, Jim. I am kind of curious > though how activerecord-jdbc-adapter knows to map the request for the > mysql adapter to the respective gem. I guess support for the most > common DB's (mysql, sqlite, etc.) are built-in. > > There is an issue that has been discussed on this list about > activerecord-jdbc-adapter. As I understand it, it will be fixed soon. > > - Keith > > --- > Keith R. Bennett > http://about.me/keithrbennett My best guess, is that when telling the database to use the jdbcmysql adapter, (I am doing so in an external YAML file as I have several scripts that use that connection info) activerecord simply uses the newest gem available. 1.2.5 is the one that breaks compatibility. The exception that it throws was what was tripping me up. Thanks for the response regardless. -Jim
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.