rails

rails5:migrationの基礎(超初心者向け)


railsのmigrationについてあまりちゃんと理解できていなかったのでメモメモ。

railsにおけるmigrationとは ??

 

「migration」

:移動

:移住

英語ではこのような意味があるようです。

 

しかし、railsをやっていると『移住』『移動』はイマイチピンと来ませんよね。。。?

 

migrationという言葉を見るのはおそらくデータベースに関係したことをしている時じゃないでしょうか。

migrationとはデータベースに何らかの変更を加える時に出てくる言葉です。

migrationをすることによって、SQLを直接いじることなく簡単にデータベースをいじることができるのです。

 

やっぱり、この『言葉の意味』と『実際の用途』をリンクして考えるのは少し難しいです。

リンクして考えることができると概念が掴みやすく、理解しやすいのですが。。。

 

こういったときは。。。

とにかくやってみましょう!

 

実際にmigraionをしてみる

 

migrationが必要になるのは、

データベースに変更を加えたとき・・・つまり

『テーブルを作成したとき』『テーブルにカラムを追加したとき』です。

それでは早速やっていきましょう。

ターミナルを開いてください。

rails g model Note title:string content:text

と打ってください。

するといくつかのファイルが作成されます。

その中に

 

migrationファイルがあります!

私の場合は『20170320151822_create_notes.rb』というファイルです。

データベースに変更を加える際に実行するmigrationとは

rails db:migrate

というコマンドを打つことで完了します。(まだ打たなくていいですよ!)

このmigrationは今作成した20170320151822_create_notes.rbというファイルを元に実行されます。

それでは、migrationファイルを見てみましょう。

create_table :notes

『notesテーブルを作成します』と宣言されています。

t.string :title     t.text :content

t.データ型 :カラム名

という構造になってます。

つまり、

『string型のtitleというカラムと、

text型のcontentというカラムがあるnotesというテーブルを作る』という内容になっています。

シンプルですね。

 

それでは、migrationしましょう!

rails db:migrate

ですね!

このようになれば成功です!

notesテーブルをcreateしています。

確認しましょう!

本当にtitleとcontentのカラムがあるnotesテーブルが作成されたのか確認してみましょう。

rails c

からの

Note.column_names

とコマンドを打ってください。

model名.column_namesでカラムを確認することができます。

上手く入ってますね!

 

でもやっぱりmigrationを取り消したい!

今やったmigrationを取り消したいなぁって時もありそうですよね!

そういったときは

rails db:rollback

をしましょう。

このコマンドをすることによって、

直近のmigrationを取り消すことができます。

このようになれば成功です。

notesテーブルをdrop(消去)することで、さっきのmigrationをなかったことにしています。

 

しかし、migrationファイルは消えない

tableをdropしたからといってmigrationファイルは消えません。

もし、今再度

rails db:migrate

すると、さっきと同じ構造のテーブルが作成されます。

ここで、

migrationファイルを少し編集してみましょう。

t.text :body

を追加しました。

そして

rails db:migrate

しましょう。

最初にnotesテーブルを作成した時と同じようになれば成功です!

さらに確認!

カラムの確認方法は

rails c

からの

Note.column_names

でしたね!

ちゃんとbodyがあるのが確認できました!

 

今回は以上です!


コメントを残す

*