Railsプロジェクトデータベースの移行


背景
私はRailsの小さいプロジェクトがあって、もとはSqliteを使って、今データベースをMysqlに変更したいですプロジェクトがすでに正常に运営してしばらくの时间のため、Sqliteデータベースの中ですでに多くのデータがあって、これらのデータも再びMysqlの中に追加します
操作手順
1.インストールツールYamlDb
Gemfileにgem 'yaml_db'を追加し、bundle instal2.データのエクスポート
実行コマンドrake db:dump RAILS_ENV=productionが正常に実行すると、db/ディレクトリの下にdataが作成される.ymlファイル、ファイル内にSqliteのデータがあります
3.データベースプロファイルconfig/databaseを変更する.yml
修正前はSqlite
default: &default
  adapter: sqlite3
  pool: 5
  timeout: 20000
production:
  <<: class="hljs-default">default
  database: db/production.sqlite3

修正後はMysql
default: &default
  adapter: mysql2
  pool: 5
  timeout: 20000
  host: mysql
  port: 3306
  username: root
  password: root
  reconnect: true
  charset: utf8
production:
  <<: class="hljs-default">default
  database: sprint_util_production

4.データベース・サービスの作成
ここでは言うまでもなく、自分でMysqlを構成するには注意が必要です.host port username passwordはプロファイルと同じようにする必要があります.
5.Mysqlで対応するデータベースを作成する
実行コマンドrake db:create RAILS_ENV=production実行が完了したらMysqlで指定したデータベースが作成されているかどうかを確認します
6.Mysqlデータベースに対応するテーブル構造を作成する
実行コマンドrake db:schema:load RAILS_ENV=production実行完了後Mysqlで指定されたテーブルrarが作成されているかどうかを確認します
7.db/dataをymlのデータをMysqlにインポート
実行命令rake db:load RAILS_ENV=production生産環境はデータ保護があって、失敗を実行することができて、失敗のヒントによって1つの環境変数を追加して成功した後にMysqlの中で検証を見て、データはすでに導入しました