読者です 読者をやめる 読者になる 読者になる

はちゅにっき

こっちのブログはまったり更新

ActiveRecord の Migration で bigint を

つかい。。。たい?
そもそも bigint が本当に必要なのかを先に考えるべきじゃ。。。
とか思いつつも
「移行元の DB が bigint なんだよ」
というわけで、bigint を使うことに。

あれ?ところで (Rails とかで)、ActiveRecord 使って migration するとき、bigint ってどうやって指定するんだろう?
と疑問に思ったので、ソースコードを眺めてみたらあっさりとそれっぽい場所を発見。

  • active_record/connection_adapters/postgresql_adapter.rb 900行目付近
  case limit
    when 1..2;      'smallint'
    when 3..4, nil; 'integer'
    when 5..8;      'bigint'
  end

とゆーことで、migration ファイルの limit の値によって smallint / integer / biginit が決まるってゆーことなんですね。
へー。

create_table :tests do |t|
  t.integer :int_val, :limit => 3  # <-- ここの値
end


あんまつかわなそうだね。。。
とりあえず、わーい。