yaml_dbを使ってRedmineのDB移行を行う方法
yaml_dbを使ってRedmineのDB移行を行う方法をメモ。
【参考】
Redmineで使うデータベースを変更する | Redmine.JP Blog
RedmineのDBをyml化してバックアップ - Qiita
yaml_dbでMySQLからPostgreSQLに移行した - @znz blog
RedmineのDBをsqliteからMySQLへ移行 - メモ(仮)
【1】そもそも、yaml_dbとは何なのか?
(引用開始)
Redmineで使用するデータベースはMySQL, SQLite, PostgreSQLから選択可能です。このうちSQLiteは導入が簡単で手軽に使い始めることができますが、本格的な運用を始めるとパフォーマンスが問題になってきて、MySQL等に移行したくなる場合があります。
このようなときに利用できるのが yaml_db というRailsプラグインです。yaml_dbを使うと、RedmineなどRuby on Railsベースのアプリケーションのデータベースの内容をYAML形式のファイルに書き出すこと、そしてYAML形式のファイルに書き出した内容をデータベースに取り込むことができます。移行元のデータベースの内容をファイルに書き出し、移行先のデータベースに取り込めば、異なる種類のデータベースに切り替えることができます。
(引用終了)
【2】yaml_dbでMySQLからPostgreSQLに移行した - @znz blogによると、下記の方法がある。
(引用開始)
1.まず RAILS_ENV=production bundle exec rake db:data:dump で db/data.yml を作成します。
2.つぎに Ruby や Rails や Redmine のバージョンはそのままで config/database.yml を変更します。
3.必要に応じて bundle でデータベースアダプターの gem をインストールします。
4.データベースの作成をしたり db:migrate をしておきます。
5.RAILS_ENV=production bundle exec rake db:data:load で読み込みます。
(引用終了)
【3】yaml_dbは、そもそもRedmineのDBをSQLiteからMySQLやPostgersSQLへ移行したい用途に使う。
しかし、それ以外のDB移行作業で使えるだろう。
例えば、第7回Redmine.tokyo勉強会の事例発表であったように、複数のRedmineサーバーのDBを統合したい場合、双方のDBをyaml_dbで出力し、yaml_dbというテキストファイルをマージしたり修正して、インポートし直す方法も考えられる。
yaml_dbを使う利点は、rakeインターフェイスがあるのでコマンド1個で簡単にインポートできること、yaml_dbというテキストファイルを正規表現で操作しやすい点があるかもしれない。
個人的には、Redmineにrakeインターフェイスがあるという特徴は、いろんな場面で使えると思っている。
つまり、rakeインターフェイスをバッチ処理化することで、RedmineのDBやファイルの一括操作、メール一括送信が可能になることだ。
例えば、前ユーザのパスワードの一括リセットや、新規ユーザ・新規チケットの一括登録、他システムからのデータの一括インポート、期日間近のチケットを出力して警告メール送信、など、色んな使い方が考えられる。
すなわち、バッチ処理はrakeコマンドで実装して、汎用的に使いやすいインターフェイスにした方がいい。
他にも色々考えてみる。
| 固定リンク
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
コメント