Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Bitnami Redmine 3.4 から 4.0 へデータを移行してみました

More than 1 year has passed since last update.

引き続きBitnami版のRedmineの話題。
4.0.0にバージョンアップする際の、データの移行手順や注意点をまとめてみました。
なお、作業はLinux(Ubuntu)で行っています。

移行手順

Bitnami Redmine 4.0.0-0 のインストール

まずはダウンロードしたbitnami-redmine-4.0.0-0-linux-x64-installer.runを実行してインストールしましょう。
インストール先は/opt/redmine-4.0.0-0とします。

データベースのバックアップ

インストールが完了したら、すぐにデータベースをバックアップしておきましょう。失敗した時にインストール直後の状態に戻すためです。
「パスワード」の部分はインストール時に指定したパスワードで。

/opt/redmine-4.0.0-0/mysql/bin/mysqldump --single-transaction -u root -pパスワード bitnami_redmine > /home/me/bitnami_redmine_4_default.dump

旧Redmineのデータベースをダンプ

移行データをダンプして保存します。その際、-tオプションを付け、DROP TABLECREATE TABLEを行わないようにします。ファイル名はbitnami_redmine.dumpとします。

/opt/redmine-3.4.x-x/mysql/bin/mysqldump --single-transaction -u root -pパスワード -t bitnami_redmine > /home/me/bitnami_redmine.dump

初期データの削除

Bitnami Redmineをインストールすると、トラッカーやステータスなどの初期データが自動作成されるのですが、インポート時にIDが重複してしまうので、一旦すべて削除します。
下記の8テーブルを空っぽにするSQLを作成します。

truncate.sql
TRUNCATE TABLE `email_addresses`;
TRUNCATE TABLE `enumerations`;
TRUNCATE TABLE `issue_statuses`;
TRUNCATE TABLE `roles`;
TRUNCATE TABLE `schema_migrations`;
TRUNCATE TABLE `trackers`;
TRUNCATE TABLE `users`;
TRUNCATE TABLE `workflows`;

で、4.0側のBitnami ConsoleでこのSQLを実行します。

mysql -u root -pパスワード bitnami_redmine < /home/me/truncate.sql

データ移行

お待ちかね、旧Redmineのデータをインポート……と言いたいところですが、このままだと不都合が出ます。
4.0では、多数の日付型フィールドで型がdatetimeからtimestampに変更されており、かつtimestamp型は日付がUTCとして保存されるため、結果的にすべての時刻が9時間ずれます
詳しくはこちらの記事を。参考になりました。

MySQLのDATETIME型とTIMESTAMP型のタイムゾーン的な違いの話+O/Rマッパーのタイムゾーンの挙動の話

で、どうすりゃいいかというと、先ほどダンプした移行データの頭の方に下記の一文を追記します。

SET SESSION TIME_ZONE = '+09:00';

これで、JSTの時刻をUTCに変換してインポートしてくれます。もちろん、RedmineではJSTで表示されますよ。
では、今度こそインポート。ちなみに-fオプションを付けると、途中でエラーが発生しても処理を継続します。

mysql -u root -pパスワード -f bitnami_redmine < /home/me/bitnami_redmine.dump

なお、移行データの中に、プラグインが作成したテーブルのデータがある場合、「そのテーブルが存在しないよ」というエラーメッセージが出ます。
先にプラグインをインストールしてテーブルを作成しておくか、プラグイン用のデータは別途移行するか、その辺はお好みで。

注意点

以上でデータ移行は完了ですが、気付いた点がいくつか。

  • 私の環境では、なぜか「ウェルカムメッセージ」が移行できませんでした。しょうがないので旧環境からコピペします。

他にも見つかったら追記します。

8amjp
福井市に住むSE・プログラマ。Kindleストアで技術系異世界ファンタジー小説「Redmineで始める異世界人心掌握術」販売中。
https://www.amazon.co.jp/~/e/B07N1QKKGR
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away