iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

railsでDBスキーマから作成してscaffoldで雛形をつくりたい

ということで、これまでに

$ script/genarate scaffold person name:string age:integer

なんてコマンドから雛形つくって、それをDBへ反映させられることはわかりました。

しかしながら、私は実際には画面やDB設計をしてからコーディングに入ることが多いです。
その場合、DB設計ツールからDDL生成して、データベースにテーブルがある状態から始めたい。

その方法を試してみました。

今回、まずDBは事前に存在している前提とします。
その状態で、"database.yml"を存在しているDBに合わせて修正します。
まずは開発環境なので”development:”のとこだけで大丈夫です。
mysqlでの例を挙げておきます。

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: test_development
  pool: 5
  username: test
  password: test
  socket: /var/run/mysqld/mysqld.sock

そこまでやったら以下のコマンドを叩きます。

$ rake environment RAILS_ENV=development db:schema:dump

これで、”db/schema.rb” にDB定義が出力されたはずです。
このファイルをとっておいて、モデルをつくります。

$ script/generate scaffold test

"db/migrate"以下にできたファイルに先ほど出力した”db/schema.rb”から必要な箇所をコピペします。
これを必要なだけ繰り返します。

コントローラ、ビューができてます。

ここで、うんん。。。残念。
ビューにDB項目が入ってないな。なにかやり方があるのだろうか。。。