[筆者環境]
Windows7 64bit
Ruby192 mingw32
Rails3 インストール済
Ruby on Rails 3 にて、DB管理のActiveRecordに慣れ親しんできたので、せっかくだから普通のRubyアプリケーションにもActiveRecordを使いたくなった。便利ですよね。
ってことで使っていきたいんだけど、Rails3だと全部railsコマンドで自動でセッティングしてくれるので、具体的な設定方法が分からない。上記のリンクは非常に参考になったサイト。
最低限抑えておかないといけない点をまとめる。
ORマッピング
- 先頭大文字の単数形クラスと小文字複数形のテーブルをマップ
- 主キーとなる列名は、id
- 外部キーは、「参照先テーブルの単数形」_「主キー名(id)」。(例:user_id)
データベースの作成にはMigrationを使う
まず、Migrationをするためのファイルを準備
ファイル名を001_create_users.rbというように、テーブル名と合わせたルール規則にしないといけない。
このファイルを、rubyプロジェクトのルートからdb/migrate下(なければディレクトリ作成)に作成
class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.column :name, :string, :null => false end end def self.down drop_table :users end end
RubyプロジェクトのルートフォルダにRakeファイルを作成
#Rakefile require 'active_record' require 'yaml' require 'logger' task :default => :migrate desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x" task :migrate => :environment do ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil ) end task :environment do ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml'))) ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a')) end
Rubyプロジェクトのルートでrakeコマンドを叩く。
テーブルの作成が完了
以下は動作確認用
require 'rubygems' require 'active_record' require 'yaml' require 'logger' dbconfig = YAML::load(File.open('database.yml')) ActiveRecord::Base.establish_connection(dbconfig) ActiveRecord::Base.logger = Logger.new(STDERR) ActiveSupport::LogSubscriber.colorize_logging = false # ActiveRecord.colorize_logging = false は使えないため class User < ActiveRecord::Base end puts User.count # SQL (0.000277) SELECT count(*) AS count_all FROM users # 6
————————————————————————–
http://thinkit.co.jp/story/2010/10/13/1804
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html
How to use ActiveRecord without Rails
http://snippets.aktagon.com/snippets/257-How-to-use-ActiveRecord-without-Rails
ActiveRecord Without Rails
http://blog.aizatto.com/2007/05/21/activerecord-without-rails/
ActiveRecord Migrations Without Rails
http://blog.aizatto.com/2007/05/27/activerecord-migrations-without-rails/
http://www.sanecode.com/2010/10/activerecord-disable-colorize_logging/
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
http://exposinggotchas.blogspot.jp/2011/02/activerecord-migrations-without-rails.html
// 他の日本語での紹介ページ
http://cryks.hateblo.jp/entry/20081110/1226321503
コメント
ブログ引っ越しされたんですね。
これからもよろしくおねがします。
できましたら、旧ブログもそのまま置いておいてもらえると助かります。技術系ブログはあとになって、検索にかかり、勉強になる記事が多いので。。。時間の劣化がないのが技術系ブログの良さであり、永続的な価値を出し続けるブログはぜひそのまま置いておいてもらえると助かります♪
コメントありがとうございます^^
前のブログの内容をすべて転載しているので、こちらで検索していただければ大丈夫だと思います。また、前のブログを消す予定は今のところないです。^^