フォーチュンサモナーズ
最新 追記

Don'tStopMusic

2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|02|03|04|05|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|

カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年

知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。


2005-01-29 この日を編集

_ [Ruby] ActiveRecord1.6 と PostgreSQL 7.3 このエントリーを含むブックマーク

AciveRecord が使いたくなりました。仕事で Perl + PostgreSQL なウェブアプリに関わっているのですが、Ruby からも扱えるようにすると(専ら自分の)開発効率が上がるのになあ、というのが動機です。

が、これって PostgreSQL 7.3 系には対応してないんでしょうか。簡単な動作チェックのプログラムを書いたところ、information_schema がないよと怒られました。確か information_schema は PostgreSQL 7.4 で導入されたものなので、きっとそうなんだろうなあ。残念。

test.rb
#!/usr/bin/env ruby
require 'rubygems'
require_gem 'activerecord'
 
class User < ActiveRecord::Base
  def self.table_name
    "user"
  end
end
 
require 'logger'
ActiveRecord::Base.logger = Logger.new("debug.log")
ActiveRecord::Base.establish_connection(
  :adapter  => "postgresql",
  :host     => "assam",
  :username => "test",
  :password => "test",
  :database => "test"
)
 
user = User.find_all("name = 'foo'")[0]
puts user.name
実行結果
/usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/connection_adapters/abstract_adapter.rb:384:in `log': ERROR:  Namespace "information_schema" does not exist (ActiveRecord::StatementInvalid)
: SELECT column_name, column_default, character_maximum_length, data_type   FROM information_schema.columns  WHERE table_catalog = 'test'    AND table_schema = 'public'    AND table_name = 'test';        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/connection_adapters/postgresql_adapter.rb:155:in `table_structure'
        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/connection_adapters/postgresql_adapter.rb:52:in `columns'
        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/base.rb:538:in `columns'
        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/base.rb:543:in `columns_hash'
        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/base.rb:952:in `column_for_attribute'
        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/base.rb:1052:in `read_attribute'
        from /usr/local/ruby/lib/ruby/gems/1.8/gems/activerecord-1.6.0/lib/active_record/base.rb:1031:in `method_missing'
        from test.rb:22

追記

Active Record in Rails

Database Support

My SQL, Postgre SQL (7.4+), and SQLite is supported out of the box. Writing a New database adapter is less than 100 lines of code.

とありました。うーむ。仕事で使ってる PostgreSQL を 7.4 に上げる画策をしますか……


最近のコメント:

RSS
Creative Commons License
This work is licensed under a Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).