Использование ActiveRecord 3.1 без Rails в скрипте - PullRequest
3 голосов
/ 19 января 2012

Следующее должно работать как скрипт с ActiveRecord 3.1 (обратите внимание, что это без Rails , а не наоборот):

#!/usr/bin/env ruby

require "rubygems"
require "active_record"
dbconfig = YAML::load(File.open('database.yml'))
ActiveRecord::Base.establish_connection(dbconfig)

irb

К сожалению, выдает ошибку:

... connection_specification.rb:71:in `rescue in establish_connection': ...
Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` ...

Добавление строки gem 'mysql2', '<0.3' перед require "active_record", как предлагалось некоторыми предыдущими постами (которые ссылаются на 0.2.7, драгоценный камень 0.2 в то время; в настоящее время это 0.2.18), не меняет его.

Как мне заставить его работать? Я хочу ActiveRecord, но не весь Rails.

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Запустить на терминале

gem install mysql2

и добавить строку к вашему коду require 'mysql2'

#!/usr/bin/env ruby

require "rubygems"
require 'mysql2'
require "active_record"

dbconfig = YAML::load(File.open('database.yml'))
ActiveRecord::Base.establish_connection(dbconfig)
0 голосов
/ 19 января 2012

Это исправило мою проблему, по крайней мере временно.Я еще не перезапустил, поэтому я не знаю, переживет ли это.И это похоже на грязный хак;должен быть лучший способ.

Я еще не проверял ответ Алексея выше, так как после выполнения этой команды у меня нет той же проблемы.Обновлюсь, если я сделаю.

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/`rvm current`/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
...