Postgresql.app против доморощенного

Я новичок в RoR, и я хочу развернуть свое следующее приложение на героку. Я хочу, чтобы моя среда разработки и тестирования соответствовала моей производственной среде для максимально плавного перехода. Таким образом, я приступил к установке postgresql в своей системе. Этот процесс был более чем разочаровывающим, и я запутался. Я следовал бесчисленным учебникам безрезультатно, и кажется, что у многих есть противоречивая информация. Вот что я знаю:

Есть много способов установить postgresql. Распространенными вариантами являются macports, homebrew, fink, Postgresql.app или enterpriseDB. После того, как вы установите один из предыдущих, вам нужно создать свое приложение rails и либо запустить:

rails new <app_name> -d postgresql

или запустите стандартный «rails new», а затем измените «sqlite3» на «pg» в вашем gemfile. Тогда, если я прав,вам действительно нужно создать свою собственную базу данных в строке команды -, выполнив это:

$ psql
$ CREATE DATABASE your_database_name;

Затем отредактируйте файл database.yml, чтобы он соответствовал примерно этому:

development:
  adapter: postgresql
  encoding: unicode
  database: <your_database_name>
  host: localhost
  pool: 5
  username: <username>
  password:

Как только это будет сделано, все должно быть хорошо. Однако у меня проблемы. На самом деле он работает, используя описанный выше процесс, но я не понимаю, как он работает. В течение нескольких часов, пытаясь заставить все это работать, я установил macports, homebrew и postgresql.app. Однако всякий раз, когда я пытаюсь взаимодействовать с базой данных (, например, «rake db :migrate» )без запуска postgresql.app, я получаю эту ошибку:

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?

Если завожу обратно, то все нормально. Итак, это заставляет меня предположить, что моя система использует postgresql.app для запуска postresql. Обладая этой информацией, я уверенно удаляю macports и самодельные установки postgresql. Однако при этом я получаю эту ошибку при попытке взаимодействия с базой данных:

Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError)

Я переустанавливаю macports и все равно получаю ту же ошибку. Затем я переустанавливаю доморощенный, и ошибка исчезает. Затем я снова удаляю macports, и все по-прежнему в порядке. Похоже, что postgresql.app и моя доморощенная установка каким-то образом зависят друг от друга. Если я прав, они должны работать независимо друг от друга, потому что каждый из них представляет собой полную установку postgreql. На данный момент у меня почти нет идей. Любой вклад в то, как этот процесс выполняется и что происходит, будет ОЧЕНЬ ЦЕНЕН.

РЕДАКТИРОВАТЬ

$ which psql

показывает:

/usr/local/bin/psql

и

ls -l /usr/local/bin/psql

показывает:

lrwxr-xr-x  1 robertquinn  admin  35 Jul 29 17:32 /usr/local/bin/psql ->../Cellar/postgresql/9.1.4/bin/psql 
9
задан flyingarmadillo 29 July 2012 в 15:20
поделиться