とうとう作りたい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
→エラーでる。ちゃんと大事なところだけ赤字で怒ってくれる。子曰く、
$ 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を以下のように設定。
gem 'sqlite3', '~> 1.3.13'
###ERROR: sqlite3.h is missing
そしてエラー。越えられない。
###MySQLにしよう!
こちらに書いてある通りにしてMySQLいれる
終わったらWorkBenchが開くとあるが必要なものが全部ダウンロードできなくてエラーがでるのであきらめた。
###MySQLがだめならpostgreだ!!
こちらと、
こちらを参照しつつproductionだけpostgreにしました。testとdevelopmentはsqlite3に戻しました。
group :development, :test do
gem 'sqlite3', '~> 1.3.6'
end
group :production do
gem 'pg'
end
git push heroku master
できた。
herokuとの連携をgithub経由にしたのだけど、その過程で公開鍵の設定が必要になったのでそれも行ってます。(参照記事)
・・・hello worldが遠い(ここですでに4時間ほどが経過している)
heroku run rails db:migrate
がエラー
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
ふぁー
ぐぐって(略)
rootファイルを書かなきゃらしい。
ここまで来てローカルで何も書いてないし動かしてないことに一抹の不安を覚える。
###ローカルでrails s
なんかある程度書かないとHello Worldできないっぽいし一回ローカル叩いてみるか、と
おもむろにrails sしてみたところ、また件のsqliteが怒っている。
can not load such file — sqlite3/sqlite3_native
色々やってみてなんとか解決した。
こちらのsqlite3のインストールを少し変更した。
soファイル生成までは同じだが、Ruby26だったので、ファイルパスにある2.5は2.6に置換して、そこにsoファイルを置いた。
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にしたらどうなるのと思ってやってみたら通った。
group :development, :test do
gem 'sqlite3', '~> 1.4'
end
###Hello World!(ローカルです)
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!!
と打ち込む。
みれた!!!
で、これはherokuで見れるのか?
git heroku push master
を再度行う。
##herokuでHello World!!できた!
ででできた・・・!!
イメージはローカルと同じなので省略。
お付き合いいただきありがとうございました。
##あとがき
読み返したら、らしいらしいばっか言ってて恥ずかしい。
自己解決もだんだんできるようになってくるのだろうか。
環境構築だけで3日も使った。時間にして8時間くらいだろうか。
もっとお布団の中だけでさくっと開発できるようにしてくださいかしこいひと。
さも一度も失敗しなかったかのようなバージョンもまとめておきたい。
Qiitaの記事を書いたのも初めてなのでマークダウンの使い方とか多分あんまり良くない。
あと酔っ払いだったから色んな記事を拾い読みしていて、最初の方に見たはずの
[【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】]
(https://qiita.com/kazukimatsumoto/items/a0daa7281a3948701c39)にミスったところ全部載ってたし、
これ通りにしていれば、こんなに時間かからなかったよなあと思う。