【问题标题】:Using ActiveRecord 3.1 without Rails in a script在脚本中使用没有 Rails 的 ActiveRecord 3.1
【发布时间】:2012-02-14 05:33:41
【问题描述】:

以下应该在 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` ...

按照之前的一些帖子的建议(参考 0.2.7,当时的 0.2 gem;目前是 0.2.18)在 require "active_record" 之前添加行 gem 'mysql2', '<0.3' 不会改变它。

我怎样才能让它工作?我想要 ActiveRecord 但不是整个 Rails。

【问题讨论】:

标签: ruby-on-rails activerecord mysql2


【解决方案1】:

在终端运行

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)

【讨论】:

【解决方案2】:

This 至少暂时解决了我的问题。我还没有重新启动,所以我不知道它是否会幸存下来。这似乎是一个肮脏的黑客;一定有更好的方法。

我还没有测试过 Aleksei 上面的答案,因为在运行此命令后我没有遇到同样的问题。如果我这样做会更新。

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

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    相关资源
    最近更新 更多