Hatena::ブログ(Diary)

謀 跡地 RSSフィード

2009年06月16日

Redmine 0.8.4 -> trunk (0.9.x) への移行メモ

社内のRedmineを0.8.4リリース版から0.9.xベースのtrunk(開発版)へ移行しました。結構はまったのでメモ。なお、Windows 2003サーバー上での運用です。

先日のRedmine勉強会で「全プロジェクトを網羅するカレンダーとかガントチャートが出力できないのが悩み*1」みたいな事を発表中に漏らしたら、懇親会で「全プロジェクトを包含する親プロジェクト作ったら?」とのアドバイスがあり、さっそくトライしたのですが…

@kirara_397  Redmineでエラー。A project with subprojects can't be a subproject そ、そんなー(泣(2009-06-15 09:22:02) link
@kirara_397  Redmineのプロジェクト構成は2層までらしい… orz(2009-06-15 09:23:18) link
@youhei  @kirara_397 trunk だと制限なしになってますよ(2009-06-15 09:24:21) link
@kirara_397  @youhei mjd!感謝です。試してみます。(2009-06-15 09:36:30) link
@youhei  @kirara_397 これっすね http://www.redmine.org/issues/594(2009-06-15 10:20:43) link
@kirara_397  @youhei 4ヶ月前かー。ありがとうございます。(2009-06-15 10:34:50) link

ということで、@youheiさんからのナイスな情報を元に、社内のRedmineを0.8.4 stableからtrunk (0.9.x) へアップグレードを試みました。以前はずっとtrunkを追っていたのですが、svn updateでどうしても取得できない時があり、それ以降Rubyforgeのリリース版を落とすようになっていました。

で、とりあえず

svn checkout http://redmine.rubyforge.org/svn/trunk/
rake db:migrate RAILS_ENV="production"

とかやったわけですが、なんかエラーになる(ログ失念)。調べてみると、現在のtrunkではRailsの要求バージョンが2.2.2に上がっていました。さらに前提条件としてRubyGems 1.3.1、Rake 0.8.3以上にしておく必要があるらしい(Installing Redmine)。ちょっと面倒ですね。

で、次にRubyGemsアップデートしようとしたら、

gem update --system
Updating RubyGems
Updating rubygems-update
・
・
ERROR:  While executing gem ... (NameError)
    undefined local variable or method `remote_gemspecs' for #<Gem::Commands::UpdateCommand:0x2c320c4>

何ィ。…ググって調べて(gem 動かない… - 仄かに輝く)、

gem install rubygems-update
Successfully installed rubygems-update-1.3.4
update_rubygems

で成功。次にRails 2.2.2のインストール

gem install rails -v=2.2.2
Successfully installed rake-0.8.7
Successfully installed activesupport-2.2.2
Successfully installed activerecord-2.2.2
Successfully installed actionpack-2.2.2
Successfully installed actionmailer-2.2.2
Successfully installed activeresource-2.2.2
Successfully installed rails-2.2.2
7 gems installed

で成功。rake-0.8.7も入った。最後に

rake rails:update
rake db:migrate RAILS_ENV="production"

を実行して、Redmineサービスを再起動。これでRedmineにアクセスしてみる。

…なんと500 Internal Server Error

log/production.log を見ると

  Status: 500 Internal Server Error
  A secret is required to generate an integrity hash for cookie session data. Use config.action_controller.session = { :session_key => "_myapp_session", :secret => "some secret phrase of at least 30 characters" } in config/environment.rb

またググって([rails][redmine]rails2.0でredmineを動かすときにはまったこと)、config/environment.rb の末尾に下記のように加筆。丁寧なログを吐いてくれるのが救い。

Rails::Initializer.run do |config|
  (中略)
  # Mon Jun 15 14:33:40 +0900 2009 Status: 500 Internal Server Error
  config.action_controller.session = { :session_key => "_myapp_session", :secret => "some secret phrase of at least 30 characters" }
end

これでようやく最新版のRedmineに移行できました!

良くなった点

  • 3層以上のプロジェクト構成が可能になった
  • 全プロジェクトを包含するカレンダー・ガントチャートが生成可能になった(目的達成!)
  • デフォルトの日本語化が進んでいる

変わらなかった点

  • PDFの日本語文字化け(config/locales/ja.yml で general_pdf_encoding: SJIS と修正しても直らない?)

その他

補足:Rails 2.3.2の場合

単純に gem update rails するとRails最新版の2.3.2が入りますが、その場合の挙動:

rake rails:update
Missing the Rails 2.2.2 gem. Please `gem install -v=2.2.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

Rails 2.2.2が必要なのに無いよ。2.2.2をインストールするか、config/environment.rbのRAILS_GEM_VERSIONを書き換えるかコメントアウトしてよ」と言われます。RAILS_GEM_VERSIONの指定は2.2.2です。

で、RAILS_GEM_VERSIONを2.3.2に書き換えてみたら、

rake rails:update
D:/Redmine/app/controllers/application.rb has been renamed to D:/Redmine/app/con
trollers/application_controller.rb, update your SCM as necessary
rake db:migrate RAILS_ENV="production"

ファイルをリネームされたりしたけど一応通った。けどRedmineにはアクセスできませんでした。謎。

面倒なので2.2.2に設定に戻して運用することにしました。ただしRails2.2.2と2.3.2の併存は可能みたいです。

以上

一応目的は達成できましたが、Redmineアップグレードは毎回一筋縄ではいかないのが悩みどころ。でも調べればなんとかなるのは良いところ。

諸々の依存問題はgem一発で解消できるようになるといいなあ。つまりRedminegem入りを希望ですよ。

*1:追記:上部メニュー「プロジェクト」→「チケットを全て見る」→右の方「カレンダー」か「ガントチャート」を選択 で出力できましたorz

あきぴーあきぴー 2009/06/19 13:56 下記で文字化けは直りませんか?

Redmine で色々とハマった件
http://typo.okkez.net/2008/04/23/redmine_defetcts

kirara_397kirara_397 2009/06/19 17:02 あきぴーさん、ありがとうございます。
CP932も試したのですが残念ながら。一部は日本語化されるんですが、一部が文字化けしたままなのです。

tobytoby 2009/06/22 18:27 >全プロジェクトを網羅するカレンダーとかガントチャート

上部メニュー「プロジェクト」→「チケットを全て見る」→右の方「カレンダー」か「ガントチャート」を選択
で行けませんか?
もしくは、URLで、/issues/calendar か /issues/gantt
で全プロジェクトのを一気に見られませんでしょうか?
そういう問題なかったりしたら、ごめんなさい

kirara_397kirara_397 2009/06/23 11:21 id:toby さん、それが正解ですね!できました。一気に見られました。何で気づかなかったんだろう… orz
ナイスアドバイス、ありがとうございます!!

tobytoby 2009/06/24 10:06 Redmine便利なのですが、結構わかりにくいところにメニューがあったりしますよね…。
全体の「経過時間」の表示も最初全然わからなくて、右上「プロジェクトへ移動」からプロジェクト選択→「概要」→右の方の経過時間の「詳細」か「レポート」を選択→上の方のパンくずリストで「全プロジェクト」選択、とか。
もう誰が気づくんだよ!という。アドレスさえわかれば、一発でいけるからよいのですがw

kirara_397kirara_397 2009/06/24 10:15 id:toby さん、RedmineのUIは今までも結構試行錯誤してますから、今後に期待しときます。

wingwing 2009/06/29 10:10 参考にさせていただきました。
が、マイグレートすると以下のエラーができます。

Validation failed: translation missing: en, field_wiki is invalid

最初はen.ymlの問題かと思ったのですが解決できていません。
field_wiki というキーワードでは何も発見できず・・

開発版へ素直に移行できない罠がまだあるのかも。
手順もバージョンも環境もここと同じです。。

うーむ

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kirara_397/20090616/1245137475