15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

既存DBを使ってRails

Posted at

#やりたいこと
既存の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を書き換えて、

Moge.rb
class Moge < ActiveRecord::Base
 self.table_name = '古いテーブル名'
end

動かしてみると、Viewもエラーを吐いているようだ。
idがないため、showとかupdateとかがダメらしい。

とりあえず表示だけで良いので、消して、無事表示を確認。

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?