Redmine を GitLab に移行する
Trac/Redmine+Subversion+Jenkinsなどを捨ててGitLabに移行するまでの道のり
概要
とりあえずこんな感じ。以下説明。
前回の話
前回、Trac を Redmine 経由で GitLab に移行するで、Trac を Redmine 経由で GitLab に移行できた。
これは、Trac の Ticket Id がプロジェクト毎に #1, #2, #3, ... なのが GitLab でもプロジェクト毎に Issue Id が #1, #,2 #3, ...となるからシンプルに移行できた。
Redmine の場合は #1(proj-A), #2(proj-B), #3(proj-A), ...とシステムで一意となる
- proj-A
- #1
- #3
- ...
- #100
- #200
- ...
- proj-B
- #2
- #101
- ...
- #199
- ...
ちょっと嫌な仕様なので困る。
Redmine to Gitlab migratorの対応
こちら
You can retain the issues ID from redmine, this cannot be done via REST API, thus it requires direct access to the gitlab machine.
So you have to log in the gitlab machine (eg. via SSH), and then issue the commad with sufficient rights, from there:
一旦、-RM-{ Redmine Id }-MR-
という形で Issue Title の頭に Redmine の Id 情報を付与しインポート。その後、直接データベース(PostgreSQL)を操作して、Id を書き換える機能が実装されている(昔、評価したときにはこの機能は実装されていなかったと記憶している)。しかし、これは REST API 経由で操作できないので、GitLab 本体と Redmine to Gitlab migrator が同じインスタンスで動いている必要がある(Omnibus 版を前提としているようで/opt/gitlab/embedded/bin/psql
コマンドを呼び出している。ちなみにsameersbn/gitlabなどはpsql
などのパスが異なる)
私の対応
Trac からの移行同様に GitLab を一時的な Docker container で起動し、移行作業完了後、 Export/Import で本番環境へ移行することにした。
同時にこの GitLab の中に Redmine to Gitlab migrator も組み込み、 Issue Id の対応を図った。
オリジナルを Fork し、 Dockerfile
や docker-compose.yml
を追加。
先程、 Pull Request を出したがどうなるか?
→ 無事 Mergeされたので本家を使えば良いです。
作業方法
README.md
に追加した通り。
作業用 GitLab を Docker 上に立ち上げる
$ export GITLAB_HOME=$PWD/srv/gitlab
$ docker-compose up -d
localhost:8081 で GitLab が立ち上がる。
Milestone/Issueの移行
Trac を Redmine 経由で GitLab に移行するで書いたことと同様。
$ docker-compose exec migrator migrate-rg issues --redmine-key xxxx --gitlab-key xxxx \
http://redmine.example.com/projects/test \
http://localhost:8081/test/test
INFO: Getting redmine issues
INFO: Converting issues
INFO: Creating gitlab issues
INFO: #1 -RM-83-MR-バグだよ
INFO: #2 -RM-84-MR-新しい機能をついかしてくれー
INFO: #3 -RM-88-MR-サポートよろしく
INFO: #4 -RM-93-MR-バグその2
この段階では、Redmineでこんな感じのものが、
GitLabでこんな感じに
Redmine Issue Id の変換
docker-compose exec migrator \
migrate-rg iid --gitlab-key xxxx \
http://localhost:8081/mygroup/myproject
INFO: Ready to recover iid for 4 issues.
INFO: Migrated successfully iid for 4 issues
これで、きちんと Redmine と同じ Id に揃えて--RM-XX-RM--
も消えてくれる!
本番環境への移行
こちらも、Trac を Redmine 経由で GitLab に移行するで書いたことと同様。
まとめ(Redmine → GitLab)
- 懸念していた Issue Id もいい感じで変換できた(実はまだ本番環境で試しておらず、自宅での個人テストだが)。
- Wiki は変換できないので後日楽な方法を考える(Trac 同様)
つづく(?)
Trac/Redmine 共に Wiki の移行方法について考えようかな?
Author And Source
この問題について(Redmine を GitLab に移行する), 我々は、より多くの情報をここで見つけました https://qiita.com/hkato/items/0d79813824cb7d563d66著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .