yaml_dbを使ってMySQLからPostgreSQLにRedmineを移行した
MySQLからPostgreSQLに移行したのでその時のメモ
移行ツール
yaml_dbを使用する
適当にググっているといくつかのサイトで、本家?のyaml_dbは4.x系のRailsに対応していないという記事がいくつかあったのだが、
https://github.com/yamldb/yaml_db
https://rubygems.org/gems/yaml_db
githubとここを見る限り4.x系も対応したみたいなのでそのまま本家のyaml_dbを使うことにする。
Postgresqlに新しいDBを作成
ここを参考に作成
http://www.redmine.org/projects/redmine/wiki/RedmineInstall#PostgreSQL
$ sudo -upostgres psql
psql$ CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity'; psql$ CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
config/database.ymlの編集
production: adapter: postgresql database: redmine host: localhost username: redmine password: "my_password" encoding: utf8
こんな感じで変更
これを先にやらずにbundleするとpostgresqlのgemが入らなかった
yaml_dbとgemのインストール&アップデート
yaml_dbをGemfileに追加
/srv/redmine/Gemfile の、gemが並んでいる場所に「gem "yaml_db"」を追加する
$ sudo vim /srv/redmine-3.0.3/Gemfile
それっぽい場所に
gem "yaml_db"
を追加
gemのインストールとアップデート
$ sudo bundle update $ sudo bundle install --without development test sqlite
前回インストールした時は
$ bundle install --without development test postgresql sqlite
ってやったけど、今回はpostgresqlのアダプタをインストールするためpostgresqlを含めない
データのダンプ
$ cd /srv/redmine-3.0.3 $ sudo RAILS_ENV=production bundle exec rake db:data:dump
これでdb/data.ymlにdata.ymlファイルが作成される
マイグレーションしてデータの書き込み
sudo RAILS_ENV=production bundle exec rake db:migrate sudo RAILS_ENV=production bundle exec rake db:data:load
後はApacheを起動してちゃんと移行できているか確認して終了。
今のとこちゃんと動いてるので上手く移行できたみたい。