目的
Rails のプロジェクト内で MySQL から PostgreSQL へのデータ移行を行う
前提条件
- 移行元・移行先のデータベースともに手元から接続するための設定は済ませておく
- MySQL 用の gem をインストールするのに必要なライブラリはインストールしておく
移行手順
移行に必要な gem を Gemfile に追加:
# Gemfile
gem 'yaml_db'
gem 'mysql2'
移行元データベースの定義を追加する:
# config/database.yml
legacy:
adapter: mysql2
encoding: utf8
database: legacy_production
username: <%= ENV['LEGACY_DATABASE_USERNAME'] %>
password: <%= ENV['LEGACY_DATABASE_PASSWORD'] %>
host: <%= ENV['LEGACY_DATABASE_HOST'] %>
bundle する:
$ bundle
移行元データベースからデータをエクスポートする:
$ bin/rake db:data:dump_dir RAILS_ENV=legacy
移行先データベースへインポートする:
$ bin/rake db:data:load_dir