Ruby

【Rails+PostgreSQL】NoDatabaseError: FATAL: role “username” does not existエラーの解消方法

PostgreSQL使おうとしたら、NoDatabaseError出た、、

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が出来るようになっているはずです。

終わりに

解決出来ないエラーが他にもある方はこちらの記事を読んでみて下さい。

あわせて読みたい
プログラミングのエラーが直らない時に使うべきサービス4選 という悩みを解決するサービスを4つ紹介します。 プログラミングにエラーはつきもので、誰もが悩まされます。何...

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください