MySQL互換DB「TiDB」でRedmine互換OSS「RedMica」を動かす検証


My Redmine

こんにちは。吉岡です。
先日、AWS Summit Japan 2025 に参加して、そこで気になるサービスを見つけたので、その中から今日はTiDBについて書きたいと思います。

はじめに

社内タスク管理やプロジェクト管理でよく使われるRedmine。今回はMySQL互換の分散型クラウドデータベース TiDB を利用し、Redmine互換のOSS「RedMica」を実際に動かす検証を行いました。

セットアップ手順・ポイントを中心にまとめましたので、クラウド型MySQL互換DBの検証事例としてご参考ください。

TiDBを使うきっかけ

数年前、某エバンジェリストだった方にRDSのスケールで悩んでいると話をしたところ、TiDBを勧められたのがきっかけです。また、AWS Summit Japan 2025 の展示ブースでも実際に担当の方が非常に丁寧に製品の説明をしてくださり、「ぜひ使ってみたい」と思えるきっかけとなりました。もちろん前からTiDB自体には興味がありましたが、実際に説明を聞く機会(コミュニケーション)が試すきっかけになったことは間違いありません!

1. TiDBの準備(アカウント作成とデータベース作成)

TiDB Cloudアカウント作成・クラスタ作成

まずはTiDB Cloudのアカウントを作成し、新規にクラスタを作成します。


TiDB サイト

TiDB Cloudにアクセスし、「無料で始める」からアカウントを登録してください。

RedMica用データベース作成

クラスタ作成後、Redmica用のデータベース(例:redmica_sample)を作成します。SQL Editor から以下のコマンドを入力し、実行します。

CREATE DATABASE IF NOT EXISTS `redmica_sample`;

SQL Editor

作成後は「Overview」の右上にある。「connect」から 接続情報(ホスト名、ユーザー名、パスワード、ポート番号など) を必ず控えておきましょう。(最初にpassword作成が必要です。)


接続情報

TiDBのMySQL互換性

一部のMySQL特有SQLやプラグインが動作しない可能性があります。詳細は公式ドキュメントの「MySQL Compatibility」ページを参照するのがおすすめです。
MySQL Compatibility | TiDB Documentation

2. RedMicaアプリケーションのセットアップ

事前準備(必要なパッケージ・ライブラリのインストール)

RedMicaが依存するmysql2 gemをインストールするため、必要なパッケージをHomebrewで導入します。

brew install mysql@8.4

RedMicaリポジトリのクローン

GitHubからRedMicaを取得し、作業ディレクトリへ移動します。

git clone git@github.com:redmica/redmica.git redmica-tidb
cd redmica-tidb

必要なGemのインストール

mysql2 gemのビルドのため、環境変数を追加してからbundle installを実行します。

brew install zstd
export LIBRARY_PATH=$LIBRARY_PATH:$(brew --prefix zstd)/lib/
bundle install

mysql2 gemインストールエラー

macOS環境では、zstdやmysql@8.4などHomebrew経由のパッケージ不足でエラーが出ることがあります。
例:ld: library not found for -lzstd

対策として brew install zstd で事前にインストールし、LIBRARY_PATH環境変数をセットしてください。

RedMicaの初期設定

secret の設定

echo "RedmineApp::Application.config.secret_key_base = `bin/rails secret`" > config/initializers/secret_token.rb

データベース設定(database.yml)の作成・編集

サンプル設定ファイルをコピーし、TiDBの接続情報を記載します。

cp config/database.yml.example config/database.yml

config/database.ymlproduction セクションを下記のように編集します。

production:
  adapter: mysql2
  database: redmica_sample
  host: *********.tidbcloud.com
  username: ***********.root
  password: "***********"
  encoding: utf8mb4
  port: 4000
  variables:
    transaction_isolation: "READ-COMMITTED"

※各種接続情報はTiDBクラスタ作成時に控えた内容を設定してください。
transaction_isolationREAD-COMMITTED 推奨(TiDB公式ドキュメント参照)

RedMicaの初期化と起動

データベースマイグレーションの実行

RAILS_ENV=production bin/rails db:migrate

初期データのロード

RAILS_ENV=production bin/rails redmine:load_default_data

サーバーの起動

RAILS_ENV=production rails s

ブラウザで http://localhost:3000 にアクセスし、RedMicaの画面が表示されればセットアップ完了です!


RedMicaログイン画面

まとめ・ポイント

気に入った点

参考

おわりに

今回の検証で、クラウド型MySQL互換DBであるTiDB上でもRedMicaが問題なく動作することを確認できました。今後も新しいインフラやミドルウェアの検証を進めていきます!

My Redmine

こちらの記事もオススメです!
AWS SUMMIT JAPAN 2025 に行ってきたぞ!
AWS Summitに今年も参加しました。今年は前後左右どこを見ても「生成AI」でした。
台湾へ社員旅行に行きました
台湾へ社員旅行に行きました。COMPUTEX TAIPEI視察や台北観光を楽しみました。
My Redmineの添付ファイルの使用容量はスクリプトを使用して計算しています
My Redmineのストレージ使用容量はスクリプトを定期的に実行して確認しています。
RedmineのシステムテストをCIで実行するようにした
RedmineのシステムテストをGithub CIで実行するようにしました。
OSC2025名古屋に出展しました
OSC2025名古屋でブース出展とセミナーを実施。多くの来場者と交流できました
ファーエンドテクノロジーからのお知らせ(2025/07/09更新)
夏季休業のお知らせ (8/13〜15休業)
2025/8/13(水)〜8/15(金)は夏季休業とさせていただきます。
JANOG56ミーティング(7/30〜8/1開催)にRubyスポンサーとして協賛・ブース出展
JANOG56ミーティング(7/30〜8/1開催)にRubyスポンサーとして協賛、ブースを出展します。
Redmine Japan Vol.4(7/25開催)に弊社代表の前田が招待講演として登壇
オープンソースのプロジェクト管理ソフトウェア Redmine のイベント「Redmine Japan Vol.4」に弊社代表でRedmineコミッターの前田剛が招待公演に登壇します。
RedMica 3.2 バージョンアップのお知らせ
My Redmineで提供しているソフトウェアをRedMica(ファーエンドテクノロジー版Redmine) 3.1 から 3.2 へバージョンアップいたします。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け