Ruby on Rails開発のインターン (Day 2)
こんにちは、皆さん!
インターン2日目がやってきました。
十分に寝てないので、途中でバテるかも
(仕事中にこれ書いてます笑)
最初にミーティングがあって、2日目ということもあり、何もできなかったけど、開発者たちのミーティングがどういうものなのか体験できる貴重な経験でした
- トピック:
- 疑問:
- ターミナルで
-u
はどんなことをするのか ?
- 学習した内容:
- Herokuは
config/database.yml
をつかっていないから、.gitignore
に入れてPostgreSQL のパスワードを安全に保護できる - Linuxのいいところはエラーが発生した時にどこの何がダメなのか教えてくれて、足りないものがあれば、それをインストールするためのコマンドも教えてくれるところ
- クラウド版のBalsamiqがあり、簡単に他の人とコンテンツをシェアできる
- TwilioはメッセージやビデオなどのAPIを提供している会社
- Railsでローカルサーバーが使えるのはPumaのおかげである
- migrationで既存のデータベースにコラムを追加する
- 問題:
- Postgresqlのパスワードが違って、データベースを作れない (解決)
- masterじゃないブランチをHerokuにプッシュすることができない (解決)
- 今後知りたいこと:
- Twilioの使い方
- リソース:
- https://medium.com/coding-blocks/creating-user-database-and-adding-access-on-postgresql-8bfcd2f4a91e
- https://devcenter.heroku.com/articles/git#deploying-code
- http://guides.rubyonrails.org/active_record_migrations.html
Postgresqlの処理
rake db:migrate
をしようとした時、Postgresqlのパスワードが違うからエラーが出たけど、正しいパスワードも覚えていませんでした笑ということで、このウェブサイトへ (Creating user, database and adding access on PostgreSQL) それで下記のを試した:
$ sudo -u postgres psql psql=# alter user [username] with encrypted password '[password]';
これでうまく既存のパスワードを変更することができました。(パスワード前後のクウォート'を忘れずに)
次にconfig/database.yml
でデータベースが作成されていないというエラーが発生しました。
そこで、先ほどのサイトの下記のコマンドを試してみました:
$ sudo -u postgres createdb [dbname]
すると、うまくデータベースが作成され、無事 rake db:migrate
することができました。
masterじゃないブランチをHerokuにプッシュする
これはHerokuがmasterで指定されてて、そうじゃないブランチからのコードでのウェブ立ち上げはしないようになっているからです。
でも、このウェブ通りにやってみたら、 (Deploying with Git | Heroku Dev Center).
$ git push heroku [local-branch]:master
でも、このコマンドは次のエラーを返してきました。
To https://git.heroku.com/glacial-beach-21775.git ! [rejected] obi_boyis_first_run -> master (non-fast-forward) error: failed to push some refs to 'https://git.heroku.com/glacial-beach-21775.git' hint: Updates were rejected because a pushed branch tip is behind its remote hint: counterpart. Check out this branch and integrate the remote changes hint: (e.g. 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
これはおそらくすでにHerokuのアプリを作成してあったためだと思います。
それでforce pushをしてみようと思いました。
$ git push -f heroku [local-branch]:master
これで一応解決しました。ただ Herokuのアプリを一度削除してから再度作る という方法でも解決できるんじゃないかなと思います。これなら force push する必要はないかと思います。
既存のデータベースにコラムを追加する
後になって、新しいカテゴリーの情報を保持して欲しいからデータベースにコラムを追加したくなることはしょっちゅうあります。Railsでは下記のようにそれを達成できます。
$ rails g migration AddUserToProducts
これはProductというモデルにユーザーを追加したい際の例です。このコマンドで下記のものが追加されます。
class AddUserToProducts < ActiveRecord::Migration[5.0] def change end end
そしたらchange
メソッドの中に下記の内容を追加:
add_column :products, :user, :string
ちなみに、下記のように一度に全部やることもできます。
$ rails g migration AddUserToProducts user:string
(user:stringの間はスペースなし)
まとめ
テストをして行くには十分なローカルの環境設定は終わりました。僕の主要な役割はテストとその間に潜在するバグを直す方法を探ること。少しずつややこしくなってきたので、もう少しRspecの勉強に時間をかけなければと思ってるところです。
それでも、この自由な環境には感謝してます。彼らは僕が何をしているかは全然気にせず、リフレッシュするために仮眠したり、出歩いてもいいって感じです。ほんとありがたい!!
多分今夜は明日の仕事のためにちゃんと寝ると思う…わかんないけど笑
ご精読ありがとうございました。では、また次回まで✌︎