Rails / PostgreSQLの初心者で、RailsでPostgreSQLプロジェクトを作成する際に実際に問題が発生しています。
簡単に言えば、私はライアンズの優れたRailscastエピソード、特に展開に関するエピソードをフォローしています。次のような新しいプロジェクトを作成します。
rails new blog -d postgresql
これにより、次のようなファイルが生成されdatabase.yml
ます(コメントが抽出されます)。
development:
adapter: postgresql
encoding: unicode
database: blog_development
pool: 5
username: blog
password:
test:
adapter: postgresql
encoding: unicode
database: blog_test
pool: 5
username: blog
password:
production:
adapter: postgresql
encoding: unicode
database: blog_production
pool: 5
username: blog
password:
これまでのところよさそうだ。
ただし、開発マシンでは、実行しようとするrake db:create:all
と、次のようなメッセージが表示されます。
rake aborted!
FATAL: role "blog" does not exist
私の理解では、これは、アプリケーションの作成時に「ブログ」というユーザーを作成していない(つまり、Railsが作成していない)ためです。したがって、次のいずれかを行う必要があります。
username
すべての環境を、Homebrewをインストールしたときに選択したシステムの「スーパーユーザー」に変更します(これは機能します)。また- 設定した個々のプロジェクトごとに新しいスーパーユーザーを作成します(たとえば、この場合はスーパーユーザー「ブログ」)。
さて、問題はこれです-私が作成する個々のプロジェクトごとにスーパーユーザーを作成する必要がありますか?もしそうなら、どのように?私が尋ねる理由は、RyanのRailscastsのエピソードでは実際にこれについて言及されていないため、これが正しいアプローチであるかどうか(少し時間がかかるようです)、またはPostgreSQLデータベースのインストールに問題があるかどうかはわかりません。 (アプリケーションの作成時に、データベースとともにスーパーユーザーが自動的に設定されると思っていたので)。
さらに、展開を容易にするために、開発環境と本番環境の両方でファイル全体を同じに保ちたいと思いdatabase.yml
ます(ただし、展開についての知識がさらに少ないことは認めているので、これは理想的ではないかもしれません)。
ありがとう!