Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

railsその0003-007 第四章完了

今日の日記

rails 5のチュートリアルをやってみる日記です。

今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。

平日の電車の中とか寝る前とかにコツコツ読んで、読み終えました。

第五章も読み終えたけど、第五章は読むだけじゃなくてコード書いた方が良さそうだなということでコード書きます。

railsその0003-006 controllerをgenerateしてtestを書く 第三章完了

参考にさせて頂いたページ

はじめに

rails 5のチュートリアルをやってみる日記です。

今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。

今日の日記

testを実行するために必要なgemを追加しました。

rails generate controller でコントローラーとか色々生成しました。

aboutアクションは手で書いて、aboutアクションを検証するtest書いて、routes.rb書いて、erb作成して、controllerにaboutアクション追加しました。

rails testでtestを実行して、redからgreenにしていくフローを一通りやりました。

herokuにもデプロイして動いたし、第三章完了です。

vagrant でのrailsアプリケーション開発の癖にもだいぶ慣れてきました。

railsその0004 vagrantの仮想環境内でbundle installが失敗する問題を解決する

参考にさせて頂いたページ

bundle installしたらエラーが出た

bundle installをしようと思ったら以下のようなエラーが出ました。

Could not fetch specs from https://rubygems.org/

解決策

参考にさせて頂いたページにならって、vagrant reloadしたらbundle installできるようになりました。

railsその0003-005 scaffoldでアプリケーションを作成して概要を学ぶ 第二章読んだだけ

参考にさせて頂いたページ

はじめに

rails 5のチュートリアルをやってみる日記です。

今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。

今日の日記

scaffoldで作成したアプリケーションの構成をもとにrailsアプリケーションの概要を学習しました。

ここはとりあえず読むだけでいいかなという気がしたのでそのまま第三章に進みます。

railsその0003-004 Herokuにデプロイして第一章完了

参考にさせて頂いたページ

第1章 ゼロからデプロイまで | Rails チュートリアル

Herokuにデプロイした記事

はじめに

rails 5のチュートリアルをやってみる日記です。

今日はここまで読んだとか、ここまでやったとかそんな感じの日記です。

今日の日記

railsアプリケーションをpushするにあたって、production環境でpgが有効になるようにGemfileとGemfile.lockを編集する必要がありました。

ハマったりしましたが、新たにheroku createし直したり、Herokuのログを確認する方法を調べたりして解決できました。

rails tutorialの第一章が完了しました。

localの開発環境構築と公開されているサーバへのデプロイができたので、ハマりがちな環境構築を切り抜けて一安心です。

Herokuその0002 Windows10でHerokuにrails アプリケーションをデプロイする

前回の記事

参考にさせて頂いたページ

sqlのgemについて

Herokuのログ確認方法について

今日の環境

  • Windows10 Home
  • Heroku CLI 6.14.36

production環境ではpgを使うようにGemfile.lockを変更する

sqlite3をdevelopment環境で使用しており、herokuではpostgresqlを使う必要があるようなのでGemfileを以下のように編集しました。
他にも使い分けたいgemがあれば記述します。

sqlite3をdevelopmentとtestで使用する設定にします。

group :development, :test do
  gem 'sqlite3', '1.3.13'
end

production環境ではpgを使用する設定にします。
pgはpostgresqlらしいです。

group :production do
  gem 'pg', '0.20.0'
end

Gemfileを変更したらbundleインストールしますが、localhostの開発環境で以下のコマンドを実行しておきます。

bundle install --without production

Gemfile.lockが更新されます。

Herokuにデプロイする

以下のコマンドでデプロイしました。

git push heroku master

前回の記事と比べるとrailsアプリケーションは時間がかかっています。

デプロイは成功したようですが、ページは上手く表示されず以下のように表示されてしまいました。

We're sorry, but something went wrong.

If you are the application owner check the logs for more information.

Herokuサーバーのログを見る

pushしたコマンドプロンプトから、以下のコマンドを実行するとログが確認できます。

heroku logs -t

または、webブラウザでHerokuにログインして、アプリケーションを選択して、右上の「More」をクリックすると、「View logs」というリンクがあるのでクリックするとログが見えます。

f:id:motomichi_works:20171028021030p:plain

私の場合はSQLのSELECTを実行するところで「テーブルが無い」というエラーが出ていました。

consoleでmigrateを実行する

さきほどの「More」をクリックすると、「Run console」というリンクがあるのでクリックするとサーバー上でコマンドが実行できます。

f:id:motomichi_works:20171028021833p:plain

rails5なので、bashプレースホルダーがあるフィールドに、以下のように入力しました。

rails db:migrate

テーブルが作成されて、ページが正常に表示されるようになりました。

Herokuその0001 Windows10でHerokuにデプロイするまで

参考にさせて頂いたページ

今日の環境

  • Windows10 Home
  • Heroku CLI 6.14.36

アカウント作成

アカウント作成はすぐできました。

参考にさせて頂いたページはスクリーンショットも付いて解りやすいですね。

クライアントツールをダウンロード

Heroku CLI | Heroku Dev Center」から、heroku-cli-x64.exeのダウンロードをしてインストールしました。

Heroku CLI 6.14.36 がインストールされました。

任意のディレクトリにgit cloneする

あらかじめbitbucketで作成しておいた空のリポジトリをcloneしました。

index.phpを作成してコミット

以下の通り作成してコミットしました。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sample</title>
<meta charset="utf-8">
</head>
<body>
Hello World
</body>
</html>

Herokuにログインする

上記のcloneしたディレクトリにコマンドプロンプトで移動して、以下のコマンドを実行しました。

heroku login

以下のような表示でEmailとPasswordを入力したらログインできました。

Enter your Heroku credentials:
Email: 
Password: 
Logged in as <your mail address>

Herokuアプリケーションを作成する

以下のコマンドを実行しました。

heroku create

以下のような表示がされて、アプリケーションが作成されました。

Creating app... done, cryptic-stream-72356
https://cryptic-stream-72356.herokuapp.com/ | https://git.heroku.com/cryptic-stream-72356.git

デプロイする

上記した手順でindex.phpを作成しているわけですが、index.htmlを作成したらpushに失敗したからindex.phpにしているという経緯もあります。

以下のコマンドでHerokuのサーバにデプロイします。

git push heroku master

以下のように表示されました。

Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 985 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> PHP app detected
remote:
remote:  !     WARNING: No 'composer.json' found.
remote:        Using 'index.php' to declare app type as PHP is considered legacy
remote:        functionality and may lead to unexpected behavior.
remote:
remote: -----> Bootstrapping...
remote: -----> Installing platform packages...
remote:        NOTICE: No runtime required in composer.lock; using PHP ^5.5.17
remote:        - apache (2.4.20)
remote:        - nginx (1.8.1)
remote:        - php (5.6.31)
remote: -----> Installing dependencies...
remote:        Composer version 1.5.2 2017-09-11 16:59:25
remote: -----> Preparing runtime environment...
remote:        NOTICE: No Procfile, using 'web: heroku-php-apache2'.
remote: -----> Checking for additional extensions to install...
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 13.7M
remote: -----> Launching...
remote:        Released v3
remote:        https://cryptic-stream-72356.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/cryptic-stream-72356.git
 * [new branch]      master -> master

ページを表示してみる

以下のURLにアクセスしたらデプロイしたページが表示されました。

https://cryptic-stream-72356.herokuapp.com/

アプリケーション名を変更する

他の人がまだ使用していない名前に変更できるようです。

以下のコマンドで変更します。

xxxxの部分は任意で名前を設定してください。

記号はハイフンだけが使用できるようです。

heroku rename xxxx

https://xxxx.herokuapp.com/

でページが表示できるようになります。

Herokuからログアウトする

以下のコマンドでログアウトします。

heroku logout

gitのoriginとherokuを確認しておく

以下のコマンドを実行しました。

git config --list