Railsプロジェクトデータベースの移行
背景
私はRailsの小さいプロジェクトがあって、もとはSqliteを使って、今データベースをMysqlに変更したいですプロジェクトがすでに正常に运営してしばらくの时间のため、Sqliteデータベースの中ですでに多くのデータがあって、これらのデータも再びMysqlの中に追加します
操作手順
1.インストールツールYamlDb
Gemfileに
実行コマンド
3.データベースプロファイルconfig/databaseを変更する.yml
修正前はSqlite
修正後はMysql
4.データベース・サービスの作成
ここでは言うまでもなく、自分でMysqlを構成するには注意が必要です.host port username passwordはプロファイルと同じようにする必要があります.
5.Mysqlで対応するデータベースを作成する
実行コマンド
6.Mysqlデータベースに対応するテーブル構造を作成する
実行コマンド
7.db/dataをymlのデータをMysqlにインポート
実行命令
私はRailsの小さいプロジェクトがあって、もとはSqliteを使って、今データベースをMysqlに変更したいですプロジェクトがすでに正常に运営してしばらくの时间のため、Sqliteデータベースの中ですでに多くのデータがあって、これらのデータも再びMysqlの中に追加します
操作手順
1.インストールツールYamlDb
Gemfileに
gem 'yaml_db'
を追加し、bundle instal
2.データのエクスポート実行コマンド
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の中で検証を見て、データはすでに導入しました