Ruby on Railsのアプリケーションを作成した時に、PostgreSQLを使おうとした時にでてくる「NoDatabaseError: FATAL: role “username” does not exist」というエラーの解消方法について書いていきます。
前提
ぼくの環境はUbuntu 18.04 LTS。
rails new sample -d postgresql とすると、gem ‘pg’が記述されたgemfileを持つRailsアプリが作られます。
次にアプリの中で、rails db:create db:migrate を行おうとした時に、ActiveRecord::NoDatebaseError: FATAL: role “k1r0hi” does not existが出てくるといった感じですね。 “k1r0hi”は僕のルートの名前なので、人によって変わります。
こんな感じで長めのエラーが出てきます。
エラーの解決方法
ActiveRecord::NoDatebaseError: FATAL: role “k1r0hi” does not exist とは、k1r0hiというユーザーがPostgreSQLの中に存在しないということですね。
PostgreSQL「必死にk10hiというユーザー名を探したけど、見つからなかった….(泣)」という意味です。
解決していきます。
まず、ターミナルを開いて「sudo su – postgres」と入力してください。
PostgreSQLにルートユーザーとして入っていきます。
入ったら、「createuser -s -r k1r0hi」と入力してエンター。
k1r0hiの部分は、あなたのユーザー名にしましょう。
そして「logout」と入力して、終了します。
これだけで終了。Railsで、rails db:create db:migrateが出来るようになっているはずです。
終わりに
解決出来ないエラーが他にもある方はこちらの記事を読んでみて下さい。