Ruby on rails migrations

Laravelを卒業して?RubyOnRailsを使うことになったので、
取り急ぎ必要そうなテクを試していく。
vagrant上にansibleで実行環境を作る系を作ったのだが、
いずれそれについても書けるようになりたい。
(ubuntu16.04LTS上にnginx/unicorn/mysql/ruby2.5.1/rails5.1.6 を立てた。)

Laravelの方が後なのでRailsがLaravelに似ているのではなく、
LaravelがRailsに似ているのだろうけど、
流石に後発だけあってLaravelの方が手数が少ない気がする。

こういうのは全部いきなり理解すると効率悪いので
だいたいおまじないとしてコピペして動かしてから理解する。

とりあえずmigration

Laravelでcreate_blogs_tableというマイグレーションファイルとモデルを作る場合、以下のようにした。

所謂設定より規約が適用されて、MVCの各要素に関して物理名と論理名が自動的に紐づいた。
本家のRailsでやるには以下の通り。

すると、db\migrate ディレクトリの下に yyyymmdd.._create_blogs.rb というファイルが出来る。
Laravelはcomposerでdatabaseディレクトリの場所を変更できたけど、Railsはどうだろう。
さてマイグレーションファイルの中身はこんな感じ。
まぁ予想通り。

空のマイグレーションファイルが1個ある状態でmigrateをかけてみる。
rakeコマンドでやる。

テーブル内は以下の通り。

def change メソッドはマイグレーションクラスが差分を書いていくことを想定していることに由来するが、
1回のマイグレーションで実行する操作はdef up、そのマイグレーションをロールバックする操作はdef downに記述できる。

例えばこうしておくと、

rollbackで全消しして、migrateで再作成できる。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする