LoginSignup
3
3

More than 5 years have passed since last update.

RailsでDB2を扱う

Posted at

RailsでDB2を扱う場合の注意点などをまとめたメモです。

導入方法

確認環境

ibm_db (3.0.3)
activerecord (4.2.6)

マイグレーションの注意点

・マイグレーションでVARGRAPHIC型のカラムを追加するには「vargraphic」を指定
・マイグレーションで「integer」を指定するとlimit指定に係わらずINTEGER型となる
・マイグレーションで「boolean」を指定するとSMALLINT型となる
 ※SMALLINT型を読み込むとboolean型として扱われる
  数値を取得したい場合はカラム名の後ろに「_before_type_cast」をつける

class Sample < ActiveRecord::Migration
  def change
    create_table :sample do |t|
      t.string :test1, limit: 20     # =>VARCHAR
      t.vargraphic :test2, limit: 20 # =>VARGRAPHIC
      t.integer :test3, limit: 1     # =>INTEGER
      t.integer :test4, limit: 4     # =>INTEGER
      t.integer :test5, limit: 8     # =>INTEGER
      t.boolean :test6               # =>SMALLINT
    end
  end
end

・「bundle exec rake db:migrate:reset」はサポートされていない

その他注意点

 ・ハングアップすることがある?
  複雑なSQLで構文エラーがあった時にRailsがハングアップすることがある。
  to_sqlでSQLを取得し、find_by_sqlで直接実行すればハングアップせずに例外が発生する

 ・TIMESTAMP型が文字列で取得されることがある?
  TIMESTAMP型が文字列で取得されることがあった。
  Active Recordのselectメソッドを使用しないようにすると時刻型で取得された。

参考

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3