元気にやっていますか?
私は相変わらず、曖昧な空白とともにふらふらする毎日です。
健体壮美なあなたのことだから大丈夫だとは思いますが、
くれぐれもお体にはお気をつけください。

2009/11/30

[Rails]Microsoft Access(.mdb)へのアクセスを試みる

Railsアプリで使用するDBをAccessにできないかとの要望があり、検討してみた。
Accessは、スタンドアローンで使われることを想定している製品(個人・小規模・GUI重視)だし、AccessをDBサーバとして使おうなんて奇特な人はなかなかいなさそうだから、アダプタなさそうだなと思ったのだが、まさにその通り。そんなものはない。
可能性があるとすればODBC経由か。
というわけで、これを試してみる。
OpenLink ODBC Adapter for Ruby on Rails / Active Record

Rails1.X系を利用している場合は、Versions 1.5を
gem install odbc-rails --include-dependencies
Rails2.X系を利用している場合は、Versions 2.0をインストールする。(なんで名前が違うんだろう?)
gem install activerecord-odbc-adapter --include-dependencies

config/database.ymlを編集。
development:
    adapter: odbc
    dsn: DataSourceName
    username: me
    password: password
DB作成。
rake db:create
⇒正常終了。
次いで、テーブル作成。
rake db:migrate

rake aborted!
ODBCAdapter: Unsupported database (access)
(See full trace by running task with --trace)
『Accessはサポートしていません。』
ああ、そうか。ODBC経由でも結局アダプタは必要なんだ。
今のところ、ODBC経由でつながるDBは↓だそうである。
MySQL, Sybase, Ingres, Informix, Oracle, DB2, Progress, PostgreSQL, SQL Server, OpenLink Virtuoso.

結論:今のところアダプタがないので無理。
アダプタを自作してやる!という意気込みがあれば別だけど。

2 件のコメント:

  1. ワタシはPupSQLiteで、sqlite3ファイルにして、Railsで読み込んでいます。Readonly でよいのなら、これがベスト。テーブルだけ、事前にascii文字にしておけば、日本語のカラム名も問題ありませんヨ。

    返信削除
  2. PupSQLiteなんて便利ツールがあるのを始めて知りました。
    Accessのデータをインポートできるとは。。。
    データ移行するならこれでバッチリですね。

    返信削除