Schienen: rake db:create:all keine Verbindung zu PostgreSQL-Datenbank
Ich versuche, erstellen Sie eine Rails-app, verwendet PostgreSQL. Hier ist eine Beschreibung von was ich getan habe.
PostgreSQL setup:
Ich installierte PostgreSQL 9.1.3 über die ppa:pitti/postgresql verwaltet von Martin Pitt. Es wurde PostgreSQL 8.4 installiert vor; ich bin nicht sicher, ob es noch installiert ist oder nicht.
- Habe ich ein Datenbank-Benutzer mit superuser-Rechte auf der Datenbank hat den gleichen Namen wie meinem Ubuntu-account.
- Ich starten Sie die Datenbank-daemon mit
sudo service postgresql start
. - Ich installiert pgadmin3, Version 1.14.0 Beta 1 über ppa:rhonda/pgadmin3 gepflegt von Gerfried Fuchs.
- Ich kann eine Verbindung über pgadmin3 mit meinem user-account und Passwort und port 5433.
Meine postgres-Konfiguration in pg_hba.conf sieht wie folgt aus (Kommentare entfernt zur besseren Lesbarkeit).
[...]
local all postgres peer
local all all peer
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Rails setup:
Jetzt will ich erstellen Sie eine Rails-Anwendung, die verwendet PostgreSQL.
- Ich installierte Ruby-1.9.3-p125 via RVM.
- Ich installiert Rails 3.2.3 in dem Gemset ruby-1.9.3-p125@global.
- Erstellt habe ich eine .rvmrc und Gemset für die Anwendung.
- Erstellte ich eine Rails-Anwendung über
rails new my_test_app -d postgresql
. - Konfigurierte ich die
user
Namen undpassword
im config/database.yml für Entwicklung und test und entfernt Produktion. - Ich konfiguriert
host: localhost
undport: 5433
im config/database.yml.
Hier ist der Inhalt meines config/database.yml (entfernt Kommentare für die Lesbarkeit).
development:
adapter: postgresql
encoding: unicode
database: my_test_app_development
pool: 5
username: johndoe
password: password
host: localhost
port: 5433
test:
adapter: postgresql
encoding: unicode
database: my_test_app_test
pool: 5
username: johndoe
password: password
Problem:
Allerdings, wenn ich bundle exec rake db:create:all
erhalte ich die folgende Fehlermeldung.
could not connect to server: No such file or directory
Is the server running locally and accepting connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?
[...]
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode",
"database"=>"my_test_app_test", "pool"=>5, "username"=>"johndoe",
"password"=>"password"}
Frage:
Warum ist der port unterscheidet, die ich benutze, wenn ich erfolgreich eine Verbindung per pgadmin3?
Bedeutet das, dass ich, sollten Sie nicht verwenden port 5433 aber 5432 wurde in Datenbank.yml als eine auskommentierte Zeile?
Für die sind diejenigen, die Installation PG über Homebrew und Probleme, fand ich eine andere Antwort. Nur deinstallieren pg Edelstein und neu installieren mit Homebrew-configs. Finden Sie die Antwort im stackoverflow.com/a/19609228/1072058.
InformationsquelleAutor JJD | 2012-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
@Riateche: Schließlich sah ich, dass der Datenbank-Konfiguration für test Umgebung findet die explizite Einstellungen für host und port. Nachdem ich Hinzugefügt die Einstellungen der test Umgebung, ich war in der Lage, um den Befehl auszuführen
bundle exec rake db:create:all
erfolgreich.Ich muss sagen, ich mag es nicht, dass Sie vorschlagen, diese Einstellungen für die Entwicklung Umgebung, aber nicht fügen Sie Sie für die anderen Umgebungen. Das macht es sehr wahrscheinlich, Sie zu verpassen, als ich geprüft.
Sie können konfigurieren Sie den Anschluss in der Konfigurationsdatei, die Sie hier finden können:
/etc/postgresql/<VERSION>/main/postgresql.conf
. Mehr infos hier. Der Standard-port 5432, soweit ich weiß.in meinem Fall brauchte ich nur hinzufügen
host
Hi Ihr Jungs, die sind mit Linux OS ? Was ist, wenn ich Tue mein rails-Projekt im windows-Basis ? wo finde ich diese etc-Verzeichnis
Sie finden es im Kern: gist.github.com/siwka/64c26f60dfe577a0fe2d5a384cbfe8fe
InformationsquelleAutor JJD
Wenn alle psql - client-Sitzung ist der Zugriff auf template1 ( zum Beispiel psql oder pgAdmin ),
rake db:migrate
ausfällt. Schließen Sie alle Sitzungen, bevor Sierake db:migrate
.InformationsquelleAutor Anish
können Sie Ihre postgresql-Konfiguration in pg_hba.conf zu Vertrauen.
InformationsquelleAutor Hetdev