&tag(マイグレーション);
*目次 [#v5671532]
#contents
*関連ページ [#dd30858c]
*参考情報 [#f8d1da54]

*マイグレーションファイルの作成 [#t8235a17]

**マイグレーションファイルを単体で生成する [#z9913a58]
- rails generateで生成可能。create_booksはCreateBooksでも可。[[NAMAKESUGI |[Rails4] migrationコマンドまとめ:http://namakesugi.blog42.fc2.com/blog-entry-157.html]]
 bundle exec rails generate migration create_books
- createから始めたらcreate table、addから始めたらカラムの追加、removeから始めたらカラムの削除用のテンプレートを自動で作ってくれる。
**例1: テーブル生成 [#t4d00d54]
-booksテーブルを生成する場合。
 bundle exec rails generate migration create_books
-以下のようにファイルを書き換える。
#pre{{
class CreateHoges < ActiveRecord::Migration
  def change
    create_table :hoges do |t|
      t.string :name
      t.integer :age

      t.timestamps
    end
  end
end
}}

**例2: テーブルにカラムを追加する [#ke1e3352]

***テーブルに文字列カラムを追加する [#ib05cf4e]

-booksテーブルにimageカラム(文字列)を追加する
 bundle exec rails generate migration add_image_to_books
-以下のようにファイルを書き換える。
#pre{{
class AddImageToBooks < ActiveRecord::Migration
  def change
    add_column :books, :image, :string
  end
end

}}
***テーブルにMySQLのLONGTEXTカラムを追加する [#d856bcf4]
-":text"だけだとLONGTEXTにならない。, :limitが必要。[[コチョナナバ: railsでmysqlのlongtext型を使う:http://kingyo-bachi.blogspot.jp/2013/06/railsmysqllongtext.html]]
#pre{{
class AddDescriptionToBooks < ActiveRecord::Migration
  def change
    add_column :books :description, :text, :limit => 4294967295
  end
end
}}

*実行 [#be4a52be]
-マイグレーション実行。何も指定しないとdevelopment環境が更新される。
 bundle exec rake db:migrate
-production環境を更新したい場合
 bundle exec rake db:migrate RAILS_ENV=production
-マイグレーション再実行
 bundle exec rake db:migrate:recet

*状態確認 [#scebff42]
-db:migrate:statusで現在の状態を確認できる。Statusがupのところが実行済みのもの。
#pre{{
$ bundle exec rake  db:migrate:status

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20140927082920  Create books
   up     20140927084708  Create hoges
   up     20141121060148  Create software infos
   down    20150409052819  Create settings
}}
-db:versionで現在どこまで進んでいるかを確認できる。
#pre{{
$ bundle exec rake  db:version
Current version: 20141121060148
}}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS