Windows用や、Linux用のRedmineの簡単インストールのパッケージを配布していたBitnamiで、インストール用のパッケージ配布がなくなっていた。コンテナイメージやRedmineのインストール済みのVMイメージについては、現在も配布されている。
パッケージが配布されていないので、BitnamiでのRedmineのバージョンアップができなくなった。試すだけならば、コンテナイメージやVMイメージでよいのだが、通常利用には向かない。残念だ。
Windows用や、Linux用のRedmineの簡単インストールのパッケージを配布していたBitnamiで、インストール用のパッケージ配布がなくなっていた。コンテナイメージやRedmineのインストール済みのVMイメージについては、現在も配布されている。
パッケージが配布されていないので、BitnamiでのRedmineのバージョンアップができなくなった。試すだけならば、コンテナイメージやVMイメージでよいのだが、通常利用には向かない。残念だ。
ちょっとRedmineのバージョンアップがめんどくさいので、移行先の候補を探した。検索しても、ゴミというか、Redmineのバージョンアップのページばかりになる。その中から探すのも大変なので、Microsoft Copilotに調べさせてみた。
## 質問
現在、Redmineを利用しています。RedmineはバージョンアップとRubyのバージョン管理がめんどくさいです。そのため、別のツールに乗り換えを考えています。条件としては、オンプレミスで稼働させたいので、OSSのツールです。Redmineと同様のツールで、移行先の候補となるツールを10個探してください。
## Copilot
Redmineからの移行を検討されているのですね。オンプレミスで稼働可能なオープンソースのプロジェクト管理ツールをいくつかご紹介します。以下のツールは、Redmineに似た機能を持ち、オンプレミス環境での使用が可能です:
– Trac – ウェブベースのソフトウェアプロジェクト管理とバグトラッキングシステム。
– GitLab – コード管理、CI/CD、モニタリングなどを統合したDevOpsプラットフォーム。
– Phabricator – コードレビュー、タスク管理、バグトラッキングなどを提供するスイート。
– Taiga.io – アジャイル開発に特化したプロジェクト管理ツール。
– GanttProject – ガントチャートとリソース管理機能を備えたプロジェクトスケジューリングアプリケーション。
– OpenProject – タスク管理、時間追跡、コスト報告などの機能を持つ。
– ProjectLibre – プロジェクト管理のためのデスクトップアプリケーション。
– RedmineUP – Redmineをベースにしたプロジェクト管理ツールで、追加機能を提供。
– Fossil – 分散型バージョン管理、バグトラッキング、ウィキ、ブログ機能を統合。
– Tuleap – アジャイル開発とソフトウェア開発ライフサイクル管理をサポート。
これらのツールは、Redmineと同じくプロジェクト管理の基本的な機能を提供すると同時に、それぞれ独自の特徴や強みを持っています。移行を検討する際には、各ツールの機能、使い勝手、コミュニティのサポートなどを比較して、ご自身のニーズに最も合ったものを選択してください。また、移行プロセスにはデータのエクスポートとインポート、必要に応じてデータの変換作業が含まれることを念頭に置いておくと良いでしょう。必要なサポートがあれば、お気軽にお問い合わせください。


OSSではないものが混じっていたり、微妙なツールもあったりする。Redmineからの移行先のおすすめはなにか、と聞くと、GitLabと答えてきた。順当にいくと、GitLabなんだろう。チケットの機能しか使わないとすると、ちょっと使いにくいのだが。そういう意味では、おとなしくRedmineのバージョンアップするのがよさそうだ。
Redmineで、ユーザを消したら、消したユーザの担当していたものが、担当者の欄が空白(表示されない)になった。アカウントを消すと、ユーザ情報も消えるから、チケットの表示も変わるのね。Redmineはユーザの削除じゃなくて、停止にしておかないと、過去のチケットなどをみるときに不具合がでると。
学んだ。
Bitnami Redmineで、Redmineの3.4.6を使っている。3.4系が古いので、Redmineの4.1.1にアップグレードにアップグレードしたときの作業を残す。基本的には、Bitnamiのドキュメントの流れでインストールはできた。インストーラーを普通に走らせるとパスなどは変わるので、そこらへんはアレンジしてる。
■参考
https://docs.bitnami.com/general/apps/redmine/administration/upgrade/
■やったこと
アップデート前の環境のDBのユーザ名とパスワードをファイルから抜く。対象のファイルは、下記。
/opt/redmine-3.4.6-1/apps/redmine/htdocs/config/database.yml
接続の確認をする
/opt/redmine-3.4.6-1/mysql/bin/mysql -u bitnami -p
データを保存するフォルダを作る
mkdir data cd data
mysqldumpでデータベースのデータを保存する
/opt/redmine-3.4.6-1/mysql/bin/mysqldump bitnami -p --databases bitnami_redmine --add-drop-database < bitnami_redmine.sql
Redmineのファイルを保存する
tar czf redmine_files.tar.gz -C /opt/redmine-3.4.6-1/apps/redmine/htdocs/files .
プラグインのファイルを保存する
tar czf redmine_plugins.tar.gz -C /opt/redmine-3.4.6-1/apps/redmine/htdocs/plugins .
現在の環境のbitnami redmineを停止する
sudo /opt/redmine-3.4.6-1/ctlscript.sh stop
新しいバージョンのbitnami redmineのインストーラを実行する。ウィザード形式なので、ウィザードにしたがって設定をする。
sudo ./bitnami-redmine-4.1.1-5-linux-x64-installer.run
インストールができたら、新しいRedmineが起動しているので、アクセスして、アクセスできることを確認する。
アクセスができ(=インストールされている)ていれば、次にApacheを停止する
sudo /opt/redmine-4.1.1-5/ctlscript.sh stop apache
新しいデータベースの接続情報を確認する。下記のファイルに記載されている。
/opt/redmine-4.1.1-5/apps/redmine/htdocs/config/database.yml
旧環境のデータを保存したディレクトリに移動し、下記のコマンドで、データベースのデータを入れる。
/opt/redmine-4.1.1-5/mysql/bin/mysql -u bitnami -p < ./bitnami_redmine.sql
次に、データを展開する。プラグインを使っているようであれば、プラグインも同じように展開する。
sudo tar xzf ./redmine_files.tar.gz -C /opt/redmine-4.1.1-5/apps/redmine/htdocs/files
Productionログのパーミッションを一時的に変更する(後から戻す)。
sudo chmod 666 /opt/redmine-4.1.1-5/apps/redmine/htdocs/log/production.log
新しい環境のRedmineの実行環境のディレクトリに移動する
cd /opt/redmine-4.1.1-5/apps/redmine/htdocs/
次にDBのマイグレーションを実行する。
sudo /opt/redmine-4.1.1-5/ruby/bin/ruby bin/rake db:migrate RAILS_ENV=production
キャッシュをクリーンナップする
sudo /opt/redmine-4.1.1-5/ruby/bin/ruby bin/rake tmp:clear
Productionログの権限を元に戻す
sudo chmod 644 /opt/redmine-4.1.1-5/apps/redmine/htdocs/log/production.log
Apacheを起動する
sudo /opt/redmine-4.1.1-5/ctlscript.sh start apache
設定ファイルなどの変更が必要な場合には変更する。
Redmineがパッケージ化されていて、簡易的に環境を用意するのに便利なBitnamiのツール群。その運営のbitnamiが2019年9月にVMwareに買収されていた。Cookieの承諾がVMwareのものになっていなければ、気が付かなかった。
Bitnami Redmine(Windows版)を使っていて、MySQLのダンプを取ろうと、mysqldumpコマンドを実行したが、接続エラーになる。mysqlコマンドでは、接続できているので、ユーザとパスワードと接続については、問題がないはず。いろいろと試した結果、以下のコマンドのときは成功したので、メモとして残しておく。
mysqldumpで成功したコマンド
mysqldump -u bitnami --password=password --all-databases --default-character-set=binary --port=3307 > dump2019mmdd.sql
これを実行すると、パスワードのくだりのところで、警告は出たが、MySQL Dumpは成功した。passwordの部分は、実際のパスワードに置き換える。
Redmine3用のbacklogsの改良ブランチ。正規PJ側ではないので、保証はない(もともとのプラグインも補償はないが。)
https://github.com/ayapapa/redmine_backlogs/tree/redmine3
このブランチの流れであれば、Redmine4用も作っているようなので、この先、使えそう。
Bitnami Redmineを3.4にバージョンアップした後、ファイルを添付すると、「500 Internal Server Error」が発生する。 production.logを確認したところ、下記のエラーが発生していた。
ActiveRecord::StatementInvalid (Mysql2::Error: Data too long for column 'digest' at row 1: INSERT INTO `attachments` (`filesize`, `author_id`, `filename`, `content_type`, `created_on`, `disk_directory`, `disk_filename`, `digest`) VALUES (3219456, 51, 'xxxxxxxxxxxxxxxxxxxxx.xls', 'application/vnd.ms-excel', '2019-01-22 13:32:06', '2019/01', '190122133206_888b6d3922b1328bb95a9axxxxxxxxx.xls', '7f983175713489027c14d233d23098f3daf8162a91a1a0e169f0e64xxxxxxxxxx')): app/controllers/attachments_controller.rb:97:in `upload' lib/redmine/sudo_mode.rb:63:in `sudo_mode'
ファイルのアップロードはエラーになっておらず、DBへの書き込み(INSERT)でエラーになっていた。MySQLのテーブルの定義を調べると、「digest」の型が「varchar(30)」で、実際に書き込みを行っているのは、64文字であることが判明。もともと、ファイルのハッシュ値(チェックサム)をMD5でやっていたものが、バージョンアップのタイミングで、SHA256になり、テーブルの定義がアップデートされていなかったのが、原因だった。
「digest」カラムをSHA256のハッシュ値を保存できるようにするため、テーブル定義を下記のAlter文で更新した。
alter table attachment modify digest varchar(64);
更新後は、無事にRedmineにファイル添付できるようになった。