久々にRails Tutorialの続きに戻ったら、色々忘れてた・・
約3ヶ月ぶりに続きに戻ろうと思ったら色々忘れてた件・・
勉強メモ、残してあったはずなのに、肝心なところが抜けているという罠・・ その時は調べながら答え見つけて、適当にブクマかPocketして「よしよし、コレで大丈夫」って思ったんだろうな・・ 毎日大量にブクマしたりPocketしてるわけじゃないけど、3ヶ月も経つと埋もれますね。。 紙のノートは便利だけど、後で検索できないし;;
あと、ブログに書かなかった理由は、時間かかるから(それよりTutorial進めたい)と、あまりにも初歩的過ぎて、(しかも自分はググったらすぐ答えが見つかったので、よい参考記事が一瞬で見つかるので、既に必要性は薄い)ブログにするまでもないか〜とサボったという理由です。
しかし、つたない記憶を辿って、この頃これやったか??と思い出すの、第一ソースを自分のブログにするの、一番わかりやすいわ。 今更だけど、ブログ・・人のためじゃなくて、自分のために書いてるんだな。。
というわけで、忘れてたことと、それを思い出すためにやったことと、また3ヶ月後の自分のためにそのダラダラとした途中結果をここにメモります・・・
忘れてたことその1:DB関連
第3章 ほぼ静的なページの作成 | Rails チュートリアル
演習3.5.3 でPostgreSqlにしてみる!をやってたらしい。
Rails Tutorialも3週目だったので、演習も全部やるぜ〜と気合い入れて、ローカル環境もPostgreSqlにしてたらしい。(←忘れてるし)
いきなり
% ./bin/rails s
して、ローカルサーバーにアクセスしたら、ActiveRecordのエラー発生(DB立ち上がってないからね)
記憶を掘り起こすために調べたこと
DBの設定ファイルを確認(設定ファイルの名前なんだったっけ??)
- config/database.yml
default: &default adapter: postgresql encoding: unicode pool: 5
おお。。PostgreSqlになっとる・・ gitの履歴から、Tutorialの何章あたりかを見つける。 ログにちゃんと章番号書いておけば良かった;; 今度から気をつけよう。。
どうも入れ替えられたファイルに大量にコメントがついてるので、rails newとかの時にPostgreSqlを指定したヤツから、ファイルを取って来てコピーした様な感じ。。 しかし今となってはその記録もないので、どっから取って来たか不明になってしまった・・
% rails new app_name -d postgresql
で作ったヤツだと思う。。
PostgreSql起動
そもそも数週間前にbrew upgradeで間違えてPostgreSql 9.4を入れてしまったことによる、DBなくなり。。 安易なupgradeダメ;;
その時のリカバリもメモってないし;; ダメダメだよ〜(この記事終わったらそっちもメモる)
とりあえずDB起動
% postgres -D /usr/local/var/postgres941
migration
で、マイグレーションすれば良いんだよね〜♪と rake db:migrate
するも、エラー・・・
なぜ??まだ何かが足りない??
PostgreSql側のコンソールを見ると、Macのログインユーザー名のROLEがありません。というエラーが・・
とりあえず出来上がってる postgres
ROLEでDBに接続。
- ユーザー名を指定してPostgreSqlに接続(psqlコマンド使用)
- お目当てのrolename(Macのログインユーザー名)を指定してROLEを作る
% psql -U postgres psql > CREATE ROLE rolename WITH LOGIN CREATEDB;
これでpsqlだけで接続できる。
DBの確認
psqlのコマンドで、バックスラッシュ+アルファベット小文字のLでDBのリストが表示されることを思い出した。
psql > \l
マイグレーションの前に、Railsのアプリ用databaseを作らなきゃいけなかったことにやっと気づく。。
DBの設定ファイルを再確認
- config/database.yml
最初にDB設定した時のもうちょい下にこんな記述。
development: <<: *default database: your_rails_app_development test: <<: *default database: your_rails_app_test
開発用とテスト用にDBが作られないといかん。
この部分も多分railsのgeneratorが作ってくれたっぽい。
アプリ名_development
と アプリ名_test
で設定されてる。
DBの初期化もrailsコマンド
危うくPostgreSQLのコマンド調べて、DB作りそうになったけど、一度もやったことがないと気づく。 Railsのコマンドであったかも・・
% ./bin/rails db:create
無事DB初期化完了。 これでやっとマイグレーションできる〜
% ./bin/rails db:migrate
忘れてたことその2:Rails Tutorialの章
どこまで進んでたのか忘れた・・・ これはgitのログにある程度書いてあったコメントから推測したけど、せっかくgithubにも上げてるのに、次どの章からやるつもりだったのかとか、一切書いてなくて結局Tutorialを流し読みながら、大体やってた箇所を探し当てた。
何章をやってたのか、残りはどのくらいあるのか、issueにでも書いておけばよかった。。 やってる時はどんどん進めるつもりだったから、その辺りの整理が疎かになっていた;;
趣味プロジェクト、いつどこでストップして別の趣味に移動してしまうかわからんので、いつでも戻って来れるように準備しておかないとダメだな〜と反省。。
まとめ
どこかのググった結果を元に、特に突っかからずに設定終えた時こそ、ブログに何を見ながらどのコマンド打ったのか、書いとかないと;;