弊社の基幹業務システムの一つである Pivotter で使っているライブラリをアップデートするなどした。最初は単純に bundle install --relock だけで終わるかなと思ったらそうでもなかったのでメモ。ちなみに heroku の bamboo-mri-1.9.1 では data_mapper + dm-postgres-adaper は動かなかったのでまた今度。
これまでは
gem 'do_sqlite3' gem 'datamapper'
だったのが
gem 'dm-sqlite-adapter' gem 'data_mapper'
になった。後者でも do_sqlite3 はインストールされるので、アダプタが分割されたってことかな。do_postgres もだいたい同じ感じで。
これまでは
validates_is_confirmed
だったのが
validates_confirmation_of
になった。他のメソッドもだいたい全部変わっている。
changelog 見ながら変更するのも面倒なので sandbox で作ってからまるっと app.rb とかコピーしてしまった。この辺、
rake rails:update
が用意されている rails は便利だねえ。それが必要な規模のアプリとの兼ね合いってところか。
git push heroku master したときに下のようなメッセージが出たら
No compatible versions could be found for required dependencies: Conflict on: "bundler": * bundler (0.9.26) activated by bundler (= 0.9.26, runtime) * bundler (= 0.9.24, runtime) required in Gemfile All possible versions of origin requirements conflict.
Gemfile.lock を再生成(bundle install --relock) すると直ると思います。
理由はわからないけど昨日動いていなかった CTCP Action は ruby1.8 で動かすようにしたら動くようになった。なんぞこれ。