RailsアプリをHerokuにデプロイ（MySQL）

##Heroku CLI 導入

```
$ brew install heroku/brew/heroku
```

##herokuのコマンドラインツール導入
herokuの操作ができるようにできるツールです。

```
$ brew install heroku-toolbelt
```
コマンドが使えるようになっているか確認

```
$ heroku -v
```

※私は一度herokuniデプロイした経験があって`heroku -v`したときに

```
 ›   Warning: heroku update available from 7.21.0 to 7.22.7
heroku/7.21.0 darwin-x64 node-v10.15.3
```
と表示されたので`heroku update`でアップデートした


## アプリのディレクトリに移動する

```
$ cd <ローカルのアプリ名>
```

## Herokuアプリを作成する
ここで入力したアプリ名がURLに入る(→http://<アプリ名>.herokuapp.com)

```
$ heroku create <アプリ名>

#変更する時
$ heroku rename <アプリ名>
```
##Procfile作成
Gemfileと同じ階層に作成

```Procfile.
web: bundle exec rails server -p $PORT
```

##Database設定
```database.yml
production:
  <<: *default
  url: <%= ENV['DATABASE_URL'] %>
  username: <%= ENV['DATABASE_USERNAAME'] %>
  password: <%= ENV['DATABASE_PASSWORD'] %>
  master_key: <%= ENV['RAILS_MASTER_KEY'] %>
```

##コンパイル

```config/application.rb
config.assets.initialize_on_precompile = false
```

```production.rb
config.assets.compile = true
```

##コンソールにエラーを表示

```gemfile.
gem 'rails_12factor', group: :production
```


##環境変数作成

```
$ heroku addons:create cleardb:ignite    #mysqlの環境変数が作成される
#CLEARDB_DATABASE_URL: mysql://ユーザー名:パスワード@サーバー名/データベース?reconnect=true
```
ブラウザでもできます
<img width="1307" alt="スクリーンショット 2019-04-03 23.04.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/265805/0daf4437-766f-bead-324c-3c9f5220720a.png">


##環境変数

###環境変数一覧

```
$ heroku config
```
###環境変数追加

```
$ heroku config:set DATABASE_URL="~~~"
#DATABASE_URLの部分をDB_PASSWORDやDB_USERNAMEに変える

heroku config:set DB_USERNAME=""
heroku config:set DB_PASSWORD=""
heroku config:set SECRET_KEY_BASE=""
```


```
$ bundle exec rake secret RAILS_ENV=production
ここででてきたものをSECRET_KEY_BASEに格納
```

```
$ heroku config
CLEARDB_DATABASE_URL: mysql://b0e＊＊＊＊＊＊＊＊9b833:2＊＊＊＊＊＊＊＊-cdbr-＊＊＊＊＊＊＊＊-03.cleardb.net/heroku_8＊＊＊＊＊＊＊＊8a779?re＊＊＊＊＊＊＊＊true
DATABASE_URL:         mysql2://b0e＊＊＊＊＊＊＊＊9b833:2＊＊＊＊＊＊＊＊-cdbr-＊＊＊＊＊＊＊＊-03.cleardb.net/heroku_8＊＊＊＊＊＊＊＊8a779?re＊＊＊＊＊＊＊＊true
DB_PASSWORD:          ＊＊＊＊＊＊＊＊
DB_USERNAME:          ＊＊＊＊＊＊＊＊
SECRET_KEY_BASE:      04873c4f＊＊＊＊＊＊＊＊1d6d＊＊＊＊＊＊＊＊359c90＊＊＊＊＊＊＊＊eb5f94＊＊＊＊＊＊＊＊c4013770e32＊＊＊＊＊＊＊＊d142cd622＊＊＊＊＊＊＊＊4e7e58＊＊＊＊＊＊＊＊0

```

<img width="422" alt="スクリーンショット 2019-05-07 8.08.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265805/0119d694-bc93-37d8-ee10-ab92ba37b0fb.png">

##herokuへpush

```
$ git push heroku master
```
South Treeだとこう切り替わる
<img width="512" alt="スクリーンショット 2019-04-04 0.53.07.png" src="https://qiita-image-store.s3.amazonaws.com/0/265805/efb16542-fe48-1e8d-9f7c-197567680bd5.png">
↓
<img width="476" alt="スクリーンショット 2019-04-04 1.55.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/265805/11680b94-015d-4205-3771-9aa7dcf112c0.png">

##heroku上でマイグレーション
```
$ heroku run rake db:migrate
```

##URL開く

```
heroku open
```

## エラーが出た時
このコマンドを打ってターミナルでログを見る

```
$ heroku logs
```


##おまけ
```
       rake aborted!
       SassC::SyntaxError: Error: Invalid CSS after "}": expected 1 selector or at-rule, was "blockquote: before,"
               on line 210 of stdin
       >> }
```
こんなエラーが出て、CSSを修正しなければいけなかったんですが、そのときに[このサイト](https://webliker.info/91098/
)が役に立ちました〜😀


#Heroku ClearDBにSequel Proから接続する
http://hhmmm.hateblo.jp/entry/2016/02/15/204638