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
** 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.
Nasıl istiyorsan öyle etkin bağlantıla...
Kopyalama baÅŸka bir sunucuya PostgreSQ...
Nerede PostgreSQL veritabanı deposu mu...
Nasıl listesinin aktif kayıt kullanırk...
Nasıl't boş değerlere izin yok bu...