1. db:create エラー
macにて作業。
ruby -v
# => ruby 2.4.0p0
rails -v
# => Rails 5.0.1
rails new myapi --api -T -d postgresql
rails db:create
# could not connect db (brabrabra)
みたいなエラーが出た。ググってみるといろいろな意見があり、例えば「config/database.yml
のユーザ名とパスワードがデフォルトではコメントアウトされてるからだ」、とか「データベースの所有者にCREATEDB権限がないから付けてみたら」とかいろいろ。実際にそれに従って試したらエラーは解消されたが、最終的にnewしたrailsプロジェクトを全部消してからやり直したら今度はエラーが出なかった。
よくよく考えたら、自分の場合は、postgresqlをインストールすらしていなかった。他にも次のような要因が考えられた。
- たぶんpostgresqlをインストールしていなかったせい?で
pg
というgemの新しいバージョンのインストールが失敗したのであとで無理やり入れた。そこらへんでpostgresqlの設定が変になったのかも? - postgresqlを起動させていなかった。railsコマンドが勝手にdbを起動してくれる、と思い込んでいた。
以上を踏まえて再度postgresqlをbrew uninstallし、関連ディレクトリも全部消してやり直したらエラーは出なかった。
brew uninstall postgresql
rm -rf /usr/local/var/postgres/
brew install postgresql
rails new myapi --api -T -d postgresql
cd myapi
rails db:create
# => created database 'myapi_development'
# => created database 'myapi_test'
2. springが起因と思われるエラー
cd myapi
rails g scaffold ...
と実行したら、長時間プロンプトがフリーズしてspringのエラーが十数行ぐらい出た。
springを再起動したら今度は動いた。
pwd
# => /../../.../myapi
spring start
spring stop