これでひと通りの作業ができました。ここで一度、
デプロイしておきます。といっても、初めてデプロイしたときは簡単でしたが、既にあるアプリを更新する場合には、決まった手順を踏まなければいけません。ここで手順を覚えておいてください。
・デプロイの手順1. commandsアイコンメニューから、
<Stage>を選びます。もしメニューが選択できないようならこれは飛ばしてかまいません。
2. 続いて、
commandsアイコンメニューから、
<Commit...>を選び、ダイアログを呼び出します。そして、
unstaged changesの「
>>」ボタンを押し、全部
staged changesに移動します。最後に、
Commit messageにメッセージを適当に書いて「
Commit」ボタンを押してください。これでコミットされます。
3. Deployのアイコンメニューから
<Deploy App>を選びます。これでデプロイされます。
――なぜ、一度デプロイしておくのか。それは次の「
マイグレーション」のためです。
■マイグレーション
これで一応、RailsアプリはHerokuサーバーにアップされてはいますが、しかしこのままでは動きません。まだ肝心のものが作成されていないからです。それは、「データベースのテーブル」です。今の段階ではModelクラスだけしかありません。そのModelを介してデータベースにデータを保管したりデータを取り出したりする、肝心のテーブルがないのです。
このテーブルは、ローカル環境などであれば直接SQLコマンドを発行したり、専用の管理ツールを使って作りますが、Herokuの場合、サーバーにデータベースを操作するための機能やツールなどは用意されていません。そこで利用するのが「
マイグレーション」です。
マイグレーションは、SQLなどのコマンドを使うことなくデータベース関連を更新するための仕組みです。これはApp Studioの場合には、
App Explorerの「
Deploy」アイコンの中にある
<Detabase>メニューのサブメニューから
<Rake db:migrate on Heroku>メニューを選びます。あるいはコマンドプロンプトやコンソールから、以下のherokuコマンドを使っても実行されます。
heroku rake db:migrate
これを実行すると、「
db」フォルダの中に「
migrate」というフォルダが作られ、その中にRubyのスクリプトファイルが自動生成されます。これを開くと、下のリスト欄のようなものが生成されているのがわかるでしょう。ここに記述されているのが、マイグレーションの処理を行うためのスクリプトです。
これでテーブルがなければ生成されるのですが、まだ今の段階ではデータが全くありません。そこで、ダミーのデータを作っておくことにしましょう。「
db」フォルダ内に、「
seeds.rb」というファイルを作成してください。そして、そこに以下のように記述しておきましょう。
Helo.create(title:'Hello', content:'This is Test!')
これは、
Heloインスタンスを作成するものです。「
create」というメソッドで、必要なデータをその後にまとめて記述し、呼び出します。これでHeloインスタンスが1つ作成され、Heloクラスに対応するテーブルにそのデータが1つ保管されます。記述したら、以下のコマンドを実行します。
heroku rake db:seed
これで
seeds.rbの内容がアプリに適用されます。うまく機能しない場合は、再度デプロイしてから改めて
heroku rake db:seedを実行してください。これで正しく機能するようになっているはずです。
これでひと通り完成しました。改めてアプリをHerokuにデプロイし、アップロードされたアプリの
/helo/indexにアクセスしてみましょう。ちゃんと
seeds.rbに記述しておいたデータが表示されたでしょうか。