プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Ruby on Rails3、マイグレーション(migration)でテーブルを作成してみる
便利なのか不便なのかは分からんけど
Railsさんではマイグレーション(migration)とかいう仕組みで
テーブルを管理できるのだそーな。

ほんじゃまぁせっかくだから、と言う訳で
マイグレーションを使ってテーブルを作成してみましたよっと。

やり方はこんな感じφ(--)

1.コンソールを開いてプロジェクト直下で

  rails generate migration [任意の名前]

 とか打ってみる


2.「db/migrate/」配下にファイルができるので
 テキストエディタで開く

  db/migrate/20130122124228_create_hoge.rb

 とかそんな感じの名前です


3.テーブルの内容を定義する
 最初は

  class CreateHoges < ActiveRecord::Migration
    def up
    end
  
    def down
    end
  end


 とかなってて中身が何もないので

  class CreateHoges < ActiveRecord::Migration
    def up

      create_table(:hoges) do |table|
        table.column(:hoge_str, :string)
        table.column(:hoge_text, :text)
        table.column(:hoge_time, :timestamp)
      end

    end
  
    def down

      drop_table(:hoges)
    end
  end

 とか書いてやる
 「up」には変更を反映する処理を書いて
 「down」には変更を取り消す処理を書いておくのだそーな
 中身の細かい書き方は頑張って調べたってください(--)ノ


4.実際にテーブルを作成する

  rake db:migrate

 とか打つとスクリプトの内容が実行されます
 今回だったらテーブルが作成されるわけだーね。


完了\(--)/

なるほどねー。
DBの種類を気にしなくて良いってのと
履歴管理になるから簡単に復元できるってのが
メリットっぽいですね。

その分特殊なことやりたいときは
すっげー大変なんだろうなぁとは思うけど
それはまぁフレームワークの宿命か(--ゞ

2013/01/23追記:
 「scaffold」する場合にはテーブル作成用のマイグレーションファイルが
 「db/migrate/」配下に自動的に作成されるみたいです。
 なもんで「scaffold」を使う場合には
 (1)scaffold実行
 (2)rake db:migrate
 な手順でOK。
 ほんでそのときに既に同じ名前のマイグレーションファイルがあると

 Another migration is already named create_hoges

 とか怒られて「scaffold」が止まっちゃいますのでご注意を。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:Ruby on Rails  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事