PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rails:Bereitstellung auf Heroku, viele Probleme

Wenn Sie einen Fehler haben:

PG::Error

fe_sendauth: no password supplied

Sie haben gute Nachrichten, Ihre App kann jetzt mit der PostgreSQL-Datenbank arbeiten. (Aber Sie müssen etwas konfigurieren)

Nach der Installation von PostgreSQL können Sie mit PostgreSQL eine neue Rails-App mit folgendem Befehl erstellen:

rails new my_app -d postgresql

Dies ist database.yml wird erstellt:

development:
  adapter: postgresql
  encoding: unicode
  database: my_app_development
  pool: 5
  username: my_app
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: my_app_test
  pool: 5
  username: my_app
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: my_app_production
  pool: 5
  username: my_app
  password:

Sie sehen, dass drei Datenbanken username haben und password Feld, dies ist der Kontobenutzer in Postgresql, drei Datenbanken in database.yaml Datei wird von diesem Benutzer erstellt. Sie müssen also username angeben und password dafür. Nach der Installation von Postgresql wird standardmäßig ein Benutzer mit dem Benutzernamen postgresql erstellt und das Passwort ist postgresql . Sie können es verwenden.

Wenn Sie einen anderen Benutzer verwenden möchten, öffnen Sie einfach pgAdmin III und erstellen Sie einen neuen Benutzer, indem Sie mit der rechten Maustaste auf Login Roles klicken und wählen Sie New login role um einen neuen Benutzer mit Passwort zu erstellen. Geben Sie dann diesen Benutzernamen und das Passwort in database.yaml ein Datei.

Danach brauchen Sie nur noch pg_hba.conf zu finden und zu öffnen Datei, um etwas für die App zu konfigurieren, kann mit PostgreSQL funktionieren. Ich benutze Windows schon lange nicht mehr, daher bin ich mir nicht sicher, wo es ist, aber Sie können es in dem Ordner finden, in dem Sie PostgreSQL installiert haben. Beispiel, wenn Sie auf E:\ installieren Partition, vielleicht finden Sie sie in:

E:\PostgreSQL\version\data

Nachdem Sie es gefunden haben, öffnen Sie und suchen Sie eine Zeile:

# "local" is for Unix domain socket connections only
local all all ident sameuser

Ändern Sie es in:

# "local" is for Unix domain socket connections only
local all all md5

Starten Sie dann Ihre Postgresql-Datenbank neu. Um eine Datenbank für die App zu erstellen, führen Sie rake db:create aus oder rake db:create:all . Jetzt kann Ihre App die PostgreSQL-Datenbank verwenden, so glücklich :).