タツノオトシゴのブログ

主にJavaに関するものです。

Redmineのバージョンアップ時のメモ

とある環境のRedmineをv0.8.3(Windows、実機で動作)⇒v2.3.3(CentOS6,VirutalBoxで動作)にバージョンアップした際につまずいたときのメモ。

DBのマイグレーション用のコマンド「rake db:migrate RAILS_ENV=production」を実行した際に、abortが発生。

rake db:migrate RAILS_ENV=productio
・・・省略
rake aborted!
An error has occurred, all later migrations canceled:

undefined method `multiple?' for #…

下記のサイトと同じ現象だった。


v0.8⇒v2.3という一足飛びのバージョンアップは、色々と試したがうまくいかず。
結論からいうと、一端、v0.8.3⇒v1.3.3にバージョンアップしてから、再度1.3.3⇒2.3.3にバージョンアップという段階を踏んだ。


なぜかというと、原因はわからず。けど、以前にv0.8(Debian)⇒v1.3.3(CentOS6,ruby1.8)へのバージョンアップの経験があり、その時はエラーなくできたから。
あと、最近、その環境をv1.3.3⇒v2.3.3(ruby1.9)に入れ替え作業を行って、これもうまくいったから。


Redmineの場合、v0.x〜1.x系までは、RubyというかRailsのライブラリのバージョンの依存度でかなりを手間取ったた経験があった。
そのため、今回は、仮想VMで、v0.8⇒v1.3へのバージョンアップ専用の環境(Linux)を準備して、さらに移行先のVMでv1.3⇒2.3で作業を行った。

今回は、かなり、おおがかかりな作業となった。
でも別環境を準備する際には、移行先用と用意していたVMをコピーして簡単にできたので、このときVMの便利さも味わうこともできた。


まあ、バージョンアップやリビジョンアップはこまめにした方がよいという教訓だけでど、Windowsで動作させていたから下手にいじれなかったという言い訳もある。
Linuxだと、前提のライブラリの入れ替えなど楽に行けるので、今回を機にOSも変更した。
さらに、Linuxにしたことで、Passenger経由でApacheと連携して動作させることができ、かなりレスポンスが良くなった。