windows10/heroku/rails6でhello world

# とうとう作りたいwebサイトを思いついた

家のPC windowsなので
個人開発はherokuだって聞いたので
仕事でruby書いてるので
そんな環境でwebサイトをつくる

（これは金曜夜に日本酒を飲みながら作りはじめ、書きはじめたサイト作成の記録なので、
酔っ払いが回り道をしながら、転びながら作っていることをご承知おきください。）

VScodeとrailsとgitHub desktopの設定は前やってた
### herokuいれた

### herokuCLI windows用 いれた
```heroku login```してプロジェクトを作った。
###dashboardに作ったプロジェクトが表示されない
　 → ```git push```してないな

### pushした
　  →エラーでる。buildpackがどうとか。調べたところherokuでrubyでアプリ作るっていったのにrubyのフォルダ構成になってない（正確にはGemFileがない）からって怒られてるらしい

###```rails new app```して```push```
 　 →エラーでる。ちゃんと大事なところだけ赤字で怒ってくれる。子曰く、

```console
$ Failed to install gems via Bundler.
$ remote:  !     Detected sqlite3 gem which is not supported on Heroku:
$ remote:  !     https://devcenter.heroku.com/articles/sqlite3
```

そうですかサポート外ですか。

```bundle install```の時はエラー出ないのになぜなんだ。
```push```する際に行われるinstallでエラーがでる。
sqlite3のバージョン指定がいるとのことなのでGemFileを以下のように設定。

```ruby:GemFile
gem 'sqlite3', '~> 1.3.13'
```

###ERROR: sqlite3.h is missing

そしてエラー。越えられない。

###MySQLにしよう！

[こちら](https://qiita.com/labocho/items/ed6e8b87c2526304a6da)に書いてある通りにしてMySQLいれる

終わったらWorkBenchが開くとあるが必要なものが全部ダウンロードできなくてエラーがでるのであきらめた。

###MySQLがだめならpostgreだ！！

[こちら](https://tex2e.github.io/blog/ruby/rails-on-heroku)と、
[こちら](https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39)を参照しつつproductionだけpostgreにしました。testとdevelopmentはsqlite3に戻しました。

```ruby:GemFile
group :development, :test do
  gem 'sqlite3', '~> 1.3.6'
end
group :production do
  gem 'pg'
end
```

```git push heroku master```できた。

herokuとの連携をgithub経由にしたのだけど、その過程で公開鍵の設定が必要になったのでそれも行ってます。（[参照記事](https://qiita.com/flmil/items/2a2114bc73ec2a6f5e90)）

・・・hello worldが遠い（ここですでに4時間ほどが経過している）

### ```heroku run rails db:migrate```がエラー

```console
 PG::ConnectionBad: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
```

なるほどSUNDAYじゃねーの（よくわかっていない）

エラー文をそのままぐぐったところアドオンがいるらしい
https://qiita.com/suzuki-x/items/b878723080aea1a673ed

```
heroku addons:create heroku-postgresql
```

###実食！！

必要とされる作業は終わったので開いてみる。

```
heroku open
```
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/231874/b2b1cd1d-6065-2e9d-30e7-cdc3a844c7ea.png)

ふぁー
ぐぐって（略）

[rootファイルを書かなきゃ](http://mozuzaru.hatenablog.com/entry/2018/03/10/204643)らしい。
ここまで来てローカルで何も書いてないし動かしてないことに一抹の不安を覚える。

###ローカルでrails s

なんかある程度書かないとHello Worldできないっぽいし一回ローカル叩いてみるか、と
おもむろにrails sしてみたところ、また件のsqliteが怒っている。

```
can not load such file — sqlite3/sqlite3_native
```

色々やってみてなんとか解決した。
[こちら](https://qiita.com/jun_moka/items/a83a8149bc97cedc16b5)の**sqlite3のインストール**を少し変更した。
soファイル生成までは同じだが、Ruby26だったので、ファイルパスにある2.5は2.6に置換して、そこにsoファイルを置いた。

```console:これの2.5を2.6に修正する
mkdir C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3\2.5
copy C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13\lib\sqlite3\sqlite3_native.so C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3\2.5
```

rails s自体は通るようになったが接続すると以下のエラーが出る。

```
LoadError: Error loading the 'sqlite3' Active Record adapter. 
Missing a gem it depends on? can't activate sqlite3 (~> 1.4), already activated sqlite3-1.3.13-x64-mingw32.
Make sure all dependencies are added to Gemfile.
```

調べても、GemFileに1.3を指定すればいいとしか出ない。指定してbundle installしなおすも、同じエラー。
自分がちゃんとエラー読めていないのかもしれないが。。。
えっじゃあ逆に1.4にしたらどうなるのと思ってやってみたら通った。

```ruby:Gemfile
group :development, :test do
  gem 'sqlite3', '~> 1.4'
end
```

###Hello World!(ローカルです）

```ruby:routes
Rails.application.routes.draw do
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
  root 'pages#index'
end
```

PagesContorollerとviews/pages/index.html.erbを作ってそこに魂を込めて
```Hello World!!```と打ち込む。

![Desktop screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/231874/8e4fb884-e847-ed64-41ff-94d84916fb54.png)

みれた！！！


で、これはherokuで見れるのか？ 
```git heroku push master```を再度行う。

##herokuでHello World!!できた！

ででできた・・・！！

イメージはローカルと同じなので省略。
お付き合いいただきありがとうございました。



##あとがき
読み返したら、らしいらしいばっか言ってて恥ずかしい。
自己解決もだんだんできるようになってくるのだろうか。

環境構築だけで３日も使った。時間にして8時間くらいだろうか。
もっとお布団の中だけでさくっと開発できるようにしてくださいかしこいひと。

さも一度も失敗しなかったかのようなバージョンもまとめておきたい。
Qiitaの記事を書いたのも初めてなのでマークダウンの使い方とか多分あんまり良くない。

あと酔っ払いだったから色んな記事を拾い読みしていて、最初の方に見たはずの
[【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】]
(https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39)にミスったところ全部載ってたし、
これ通りにしていれば、こんなに時間かからなかったよなあと思う。