2007年09月13日

ActiveRecordを外部アプリケーション(rails以外)で使う

DB更新クローラーなどの単体アプリケーション(Rails以外のアプリケーション)でもActiveRecordを用いてDB操作する方法です。

ActiveRecordを使用するのに必要なファイルは以下の通り
RaisAppDir/config/boot
RaisAppDir/config/environment

これらを読み込み、
RaisAppDir/config/database.yml
からDBへコネクションを張ると使用できます。

コードは



#!/usr/local/bin/ruby

#PATHは環境によって変更
require 'path/to/railsdir/config/boot'
require 'path/to/railsdir/config/environment'

#YAMLの読み込み:PATHは環境によって変更
dbconfig = YAML.load_file(path/to/railsdir/config/database.yml')['development']

#DBへの接続
ActiveRecord::Base.establish_connection(dbconfig)

#あとはお馴染みの・・・
user = User.find(:all)


ロードに若干時間は掛かるけど、楽でいい

ちなみに・・・


別のやり方もありますが、こちらはModelクラスを逐一記述しないといけません。
当然、テーブル間のリレーションシップも再度記述しないといけません。
そうなると、ちょっと面倒くさい。


#!/usr/local/bin/ruby

require "rubygems"
require "active_record"

# DB接続
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "xxxxxx",
:password => "xxxxxx",
:database => "xxxxxx",
:socket => "xxxxxx",
:encoding => "utf8"
)

# テーブルにアクセスするためのクラスを宣言
class User < ActiveRecord::Base
end

user = User.find(:all)


アプリケーション独自のリレーションシップを構築したい場合や、YAMLに記載されていないDBにアクセスしたい場合などは使えるかも
posted by しょうじ at 14:02| Comment(1) | TrackBack(0) | 環境 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ピンホールカメラ 新品入荷,腕時計 カメラ、ペン型,小型カメラ激安通販!品質保証!
Posted by 小型カメラ at 2011年03月24日 16:36
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/55146011

この記事へのトラックバック