2017-01-09 9 views
1

Railsを使い、gitでクローン化されたサイトを起動してローカル開発環境を稼働させようとしています。私は私のプロジェクトの下ではpostgresとタイプ「レールs」のターミナルでは、サーバを起動するために起動すると新しいRailsがインストールされました:ActiveRecord :: NoDatabaseError FATAL:ロールが存在しません

、私は打撃を受ける、以下:

=> Booting WEBrick 
=> Rails 4.2.0 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
[2017-01-08 20:43:24] INFO WEBrick 1.3.1 
[2017-01-08 20:43:24] INFO ruby 2.2.6 (2016-11-15) [i386-mingw32] 
[2017-01-08 20:43:24] INFO WEBrick::HTTPServer#start: pid=1036 port=3000 




Started GET "/" for ::1 at 2017-01-08 20:43:29 -0500 
Started GET "/" for ::1 at 2017-01-08 20:43:29 -0500 

ActiveRecord::NoDatabaseError (FATAL: role "username" does not exist 
): 

私がしようとすると

rake db:create 

を実行した場合受け取る

FATAL: role "username" does not exist 
C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:661:in `rescue in 
..... 

rake db:migrateと基本的に同じです。サイトのすべての移行は\サイト名\サイト名\ DB \私がしようとした場合

を移行し、私はすぐに私がしました

psql: FATAL: role "username" does not exist 

戻ってる

psql -U username 

ユーザを作成\サイトにありこの午後に頭を悩ませていた。

私はWindowsのボックスです。何か案は?

+1

これはあなたのPSQLデータベースのセットアップ方法によって異なります。あなたは 'username'と' password'指定を 'database.yml'から削除して動作させることができますか?もしそうでなければ、あなたのデータベースのユーザ名とパスワードを知っていますか? –

+0

おそらく許可の問題です。私はLinuxのいくつかの味を実行し、レールを学ぶために使用するDockerまたは仮想マシンホストのいくつかの並べ替えを使用することをお勧めします。あなたは頭痛がはるかに少なく、実際にはBashと実際のオペレーティングシステムを使用していると仮定したチュートリアルに従うことができます。 – max

+0

database.ymlの 'development'プロファイルからユーザ名とパスワードを削除しました。また、同じファイルの 'production'セクションの下にユーザー名とパスワードがありますが、設定は全く異なります。 例: の開発: アダプタ:postgresqlの エンコーディング:UTF8 データベース:app_development プール:5 ユーザー名:ユーザー名 パスワード:「 生産VS: <<:*デフォルト データベース:appname_production ユーザ名:appusername パスワード:<%= ENV ['APPNAME_DATABASE_PASSWORD']%> dbがOSXで作成されたもの以外に作成されたものは不明です。 – user1318340

答えて

0

database.ymlも同様に更新してください。

default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 

development: 
    <<: *default 
    database: 'some_name' 
    username: 'postgres' 
    password: 'postgres' 
    host: localhost 
    port: 5432 

PostgresqlのインストールがPassword: 'postgres'とデフォルトrole: 'postgres'が付属していながら。それを使用したくない場合は、役割を作成してすべての権限を付与することができます。

CREATE ROLE new_user WITH CREATEDB CREATEROLE SUPERUSER; 

次に、database.ymlを新しく作成されたロールで更新します。

希望すると、これが役立ちます。

0
default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 

development: 
    <<: *default 
    database: 'some_name' #database name 
    username: 'postgres' #postgres username 
    password: 'postgres' #postgres password 
    host: localhost 
    port: 5432 

rake db:create #to create the db in postgres 
rake db:migrate #to run migration(if any) in db/migrate folder 
rake db:seed #to run seed file in db/seed.rb 
1

まず、あなたのデータベースを設定し、psqlでスーパーユーザーを作成する必要があります。 psql:

sudo -u postgres psql 

パスワードを使用してユーザを作成できます。例:

create user username with password '12345678'; 

このユーザーの助けを借りて、Railsはデータベースを管理します。したがって、スーパーユーザーも作成する必要があります。

alter user username with superuser; 

スーパーユーザーを作成した後は、psqlを終了することができます。同じデータが/ のconfig/databaseになければなりません。YMLファイル:アプリケーションrepositroyで

development: 
    <<: *default 
    database: database_name 
    username: username 
    password: '12345678' 

熊手の助けを借りて、データベースを作成します。

rake db:create 
関連する問題