Ich bin ziemlich neu in RoR und ich bin dabei, meine nächste App auf Heroku zu implementieren. Ich möchte meine Entwicklung & Testumgebung zu meiner Produktionsumgebung für den reibungslosen Übergang entsprechen. Daher habe ich PostgreSQL auf meinem System installiert. Dieser Prozess war mehr als frustrierend und ich bin mehr als verwirrt. Ich folgte unzähligen Tutorials ohne Erfolg und es scheint, als hätten viele widersprüchliche Informationen. Hier ist, was ich weiß:Postgresql.app vs Homebrew
Es gibt viele Möglichkeiten, Postgresql zu installieren. Gängige Optionen sind Macports, Homebrew, Fink, Postgresql.app oder EnterpriseDB. Sobald Sie eines der vorherigen installieren, müssen Sie Ihre Rails-Anwendung erstellen und entweder laufen:
rails new <app_name> -d postgresql
oder den Standard laufen ‚neuen Schienen‘ und ändern Sie dann ‚sqlite3‘ auf ‚pg‘ in Ihrem gemfile. Dann, wenn ich richtig bin, haben Sie eigentlich Ihre eigene Datenbank in der Befehlszeile erstellen, indem Sie diese:
$ psql
$ CREATE DATABASE your_database_name;
Dann bearbeiten Sie Ihre database.yml etwas in der Nähe dieser folgen:
development:
adapter: postgresql
encoding: unicode
database: <your_database_name>
host: localhost
pool: 5
username: <username>
password:
Sobald das erledigt ist, sollte alles gut sein. Ich habe jedoch Probleme. Ich habe es tatsächlich mit dem obigen Prozess arbeiten, aber ich bin verwirrt, wie es läuft. Während der Stunden, in denen ich versuchte, all das zum Laufen zu bringen, installierte ich Macports, Homebrew und Postgresql.app. Jedes Mal, wenn ich mit der Datenbank (wie ein ‚rake db: Migration‘) versuchen, zu interagieren, ohne postgresql.app Laufen, ich diesen Fehler:
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
Wenn ich es wieder nach oben schießen, alles ist in Ordnung. Ok, das führt mich zu der Annahme, dass mein System postgresql.app verwendet, um postresql auszuführen. Mit diesen Informationen kann ich Macports und Homebrew-Installationen von postgresql sicher deinstallieren. Doch bei so tun, bekomme ich diesen Fehler bei dem Versuch, mit der Datenbank zu interagieren:
Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError)
ich Macports neu installieren und immer noch die gleichen Fehler. Dann installiere ich Homebrew neu und der Fehler verschwindet. Ich deinstalliere dann wieder Macports und alles ist noch in Ordnung. Es scheint, dass postgresql.app und meine Homebrew-Installation irgendwie voneinander abhängig sind. Wenn ich richtig liege, sollten sie unabhängig voneinander laufen können, weil jede eine vollständige Installation von postgreql ist. Ich habe zu diesem Zeitpunkt ziemlich viele Ideen. Irgendwelche Eingaben darüber, wie dieser Prozess ausgeführt wird, was vor sich geht, wären SEHR ANERKANNT.
EDIT
$ which psql
zeigt:
/usr/local/bin/psql
und
ls -l /usr/local/bin/psql
zeigt:
lrwxr-xr-x 1 robertquinn admin 35 Jul 29 17:32 /usr/local/bin/psql -> ../Cellar/postgresql/9.1.4/bin/psql
Meine Vermutung Postgres-Server ist unter postgres.app läuft, aber die Befehlszeile Pfade zu den Homebrew ausführbaren Dateien verweisen ? Was zeigt "welches psql"? Und dann 'ls -l' diesen Pfad – house9
hinzugefügt sie in einer Bearbeitung – flyingarmadillo
Keller ist, wo Homebrew installiert, können Sie versuchen, postgres.app zu Ihrem Pfad hinzufügen, siehe http://postgresapp.com/documentation – house9