#やりたいこと
既存のDBを使って、とりあえずRailsを動かす。
#やること
- DB側の設定
- rails new
- database.ymlの変更
- schema.rbの生成
- scaffold
DB側の設定
既存のユーザを使ってもいいですが、とりあえずRails用のユーザを追加しました。
rails new
デフォルトで動かすとsqliteで作成されてしまうらしい。既存のDBはmysqlなので、生成時に指定。
rails new Hoge --database=mysql
database.ymlの変更
config/database.yml がDBアクセス用の設定ファイル。ユーザー名とかパスワードとか、ホストとかを書き換えました。
schema.rb
手動で書いても良さそうだけど、データベースの定義を読んで生成してくれる様子。
rake environment -t RAILS_ENV=development db:schema:dump
使わないテーブルの情報が邪魔なので、手動で消しました。
scaffold
ささっと動作確認したかったので、scaffoldで生成。ただ、マイグレーションは要らないので、どうしようかなと思っていたら、それ用のオプションがあるようなので指定。
rails g scaffold Moge 情報 --skip-migration
元テーブルの情報を引っ張って来ればいいのだけれど、めんどくさい。自動で作れないかな。
で、ハマった。当たり前だけど、古いDBが命名規則に沿ってないので、ダメ。
なので、Modelを書き換えて、
class Moge < ActiveRecord::Base
self.table_name = '古いテーブル名'
end
動かしてみると、Viewもエラーを吐いているようだ。
idがないため、showとかupdateとかがダメらしい。
とりあえず表示だけで良いので、消して、無事表示を確認。