SORU
26 Aralık 2011, PAZARTESİ


Rol yok ve PostgreSQL kullanırken veritabanı oluşturulamadı

Benim uygulama için Heroku kullanıyorum ve PostgreSQL gerektirir ama hala gelişme için SQLite3 kullanabilirsiniz. Heroku güçlü 2 farklı veritabanları karşı tedbirli beri değiştirmek için kalkınma için PostgreSQL karar verdim. gem pg yüklü ve aynı zamanda resmi PostgreSQL sitesini Windows yükleyici almak ve aynı zamanda değişti benim için gitti database.yml. Kurulum sırasında bir tane yaptım PostgreSQL için bir parola gerektirir. Geçmiş olsun için trust md5 pg_hba.conf dosyasını değiştirmek zorunda kaldım: veritabanı oluşturmak için çalışırken fe_sendauth: no password supplied.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust # was md5
# IPv6 local connections:
host    all             all             ::1/128                 trust # was md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust

Bundan kurtulmak düşündükten sonra, " ben şimdi şunu dinle:

$ rake db:create
(in C:/app)
FATAL:  role "User" does not exist 
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"utf8", 
"database"=>"app_test", "pool"=>5, "username"=>nil, "password"=>nil} 

Hala development.sqlite3 text.sqlite3 hediyem var, bu sorun olabilir mi? Ne yapmam gerekiyor?

İşte tam benim özü: https://gist.github.com/1522188

CEVAP
26 Aralık 2011, PAZARTESİ


** 15, belki de kullanmak uygulamanızın adı (veya adının bazı varyant) kullanıcı adı olarak bir kullanıcı adını Ekle, yer tutucu olarak app_name kullanacağım:

development:
  adapter: postgresql
  encoding: utf8
  database: app_development
  pool: 5
  username: app_name
  password:

Sonra kullanıcı oluştur ("rol") içinde PostgreSQL psql.exe kullanarak: . AKA

$ psql -d postgres
postgres=# create role app_name login createdb;
postgres=# \q

İlk satır terminal, önümüzdeki iki içinde psql. Senin yapmak rake db:create o zaman.

User kullanıcı muhtemelen varsayılan ama user is already taken için başka amaçlar içinde PostgreSQL yani ... bilemiyorum alıntı korumak için dava isteseydiniz, kullanma User kullanıcı adı:

postgres=# create role "User" login createdb;

Zaten her uygulama için bir kullanıcı oluşturmak daha iyidir.

database.yml 26 *girişi için benzer şeyler yapmak isteyeceksiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006
  • How Things Are Made

    How Things A

    17 HAZİRAN 2008