1. t-toyota

    Posted

    t-toyota
Changes in title
+既存のMySQL から migration ファイルを作成する手順。
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,53 @@
+# 概要
+バックエンド環境を Ruby に変更することになったため、既存の MySQL から migration ファイルを作成するための手順を調べました。
+
+## 環境
+- ruby: 2.4.1
+- Rails: 5.0.4
+
+# 手順
+1. 既存データベースの接続情報を登録
+
+```yaml:config/database.yml
+default: &default
+ adapter: mysql2
+ encoding: utf8
+ pool: 5
+ username: '既存DBのユーザ名'
+ password: '既存DBのパスワード'
+ host: '既存DBのホスト名'
+
+development:
+ <<: *default
+ database: '既存DBのスキーマ名'
+```
+
+2. schema.rbを作成
+
+```
+$ rake db:schema:dump
+```
+
+上記コマンドで ```db/schema.rb``` が作成されます。
+
+3. migration ファイルを作成
+
+```
+$ rails g migration create_tables
+Running via Spring preloader in process 41947
+ invoke active_record
+ create db/migrate/20170717043602_create_tables.rb
+```
+
+4. schema.rb の内容を migration ファイルにコピー
+
+```schema.rb``` 内の ```create_table "XXXXXX" ... ``` となっている箇所をコピーして、 migration ファイルの ```def change``` の中身を書き換えます。
+
+4. migration ファイルからテーブルを作成
+
+```
+$ rake db:migrate
+````
+
+上記コマンドで migration ファイルからテーブルが作成されます。
+そのまま既存のDBに向けて実行すると、テーブルを再作成するので既存のデータが消えるので注意してください。