2017-02-04 11 views
2

Я запускаю сборку на сервере непрерывной интеграции Buddy, и он приносит ошибки при выполнении mix test, когда он попадает в postgrex/ecto часть:DBConnection.ConnectionError) tcp connect (localhost: 5432): connection failed -: econnrefused

==> postgrex 
Compiling 61 files (.ex) 
Compiling lib/postgrex/protocol.ex (it's taking more than 10s) 
Compiling lib/postgrex/default_types.ex (it's taking more than 10s) 
Generated postgrex app 
==> ecto 
Compiling 69 files (.ex) 
Compiling lib/ecto/query/builder/lock.ex (it's taking more than 10s) 
Compiling lib/ecto/repo/queryable.ex (it's taking more than 10s) 
Compiling lib/ecto/query/inspect.ex (it's taking more than 10s) 
Compiling lib/mix/tasks/ecto.drop.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/filter.ex (it's taking more than 10s) 
Compiling lib/ecto/repo/preloader.ex (it's taking more than 10s) 
Compiling lib/mix/tasks/ecto.gen.repo.ex (it's taking more than 10s) 
Compiling lib/ecto/adapters/mysql.ex (it's taking more than 10s) 
Compiling lib/ecto/schema.ex (it's taking more than 10s) 
Compiling lib/ecto/migration/runner.ex (it's taking more than 10s) 
Compiling lib/ecto/repo/schema.ex (it's taking more than 10s) 
Compiling lib/ecto/embedded.ex (it's taking more than 10s) 
Compiling lib/ecto/migration/schema_migration.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/preload.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/order_by.ex (it's taking more than 10s) 
Compiling lib/ecto/uuid.ex (it's taking more than 10s) 
Compiling lib/ecto/type.ex (it's taking more than 10s) 
Compiling lib/ecto/association.ex (it's taking more than 10s) 
Compiling lib/ecto/adapters/postgres/connection.ex (it's taking more than 10s) 
Compiling lib/mix/tasks/ecto.gen.migration.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/join.ex (it's taking more than 10s) 
Compiling lib/ecto/query/planner.ex (it's taking more than 10s) 
Compiling lib/ecto/log_entry.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/select.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/distinct.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/limit_offset.ex (it's taking more than 10s) 
Compiling lib/ecto/changeset.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder/group_by.ex (it's taking more than 10s) 
Compiling lib/ecto/changeset/relation.ex (it's taking more than 10s) 
Compiling lib/ecto/multi.ex (it's taking more than 10s) 
Compiling lib/ecto.ex (it's taking more than 10s) 
Compiling lib/ecto/query/builder.ex (it's taking more than 10s) 
Compiling lib/ecto/adapters/postgres.ex (it's taking more than 10s) 
Generated ecto app 
==> phoenix_ecto 
Compiling 4 files (.ex) 
Generated phoenix_ecto app 
==> phoenix_chat 
Compiling 19 files (.ex) 
Generated phoenix_chat app 
08:49:48.868 [error] GenServer #PID<0.3296.0> terminating 
** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused 
    (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2 
    (connection) lib/connection.ex:622: Connection.enter_connect/5 
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 
** (Mix) The database for PhoenixChat.Repo couldn't be created: an exception was raised: 
    ** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused 
     (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2 
     (connection) lib/connection.ex:622: Connection.enter_connect/5 
     (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 
Build failed !!!. 

Я думаю, это потому, что сервер сборки, кажется, (localhost:5432), и я не думаю, что это хорошо играет с Фениксом, который Usally на порт 4000. See this answer for my coming to that conclusion.

Что такое решение этой проблемы?

Я изменил dev.ex иметь этот конфиг:

config :phoenix_chat, PhoenixChat.Endpoint, 
    http: [port: {:system, "PORT"}], 

тогда я поставил перед собой задачу PORT=4000 mix test, но я все еще получаю ту же ошибку.

EDIT: Это не появляется моя установка порт работал, потому что ошибка по-прежнему:

PORT=4000 mix test 
09:18:34.884 [error] GenServer #PID<0.183.0> terminating 
** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused 
    (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2 
    (connection) lib/connection.ex:622: Connection.enter_connect/5 
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 
** (Mix) The database for PhoenixChat.Repo couldn't be created: an exception was raised: 
    ** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused 
     (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2 
     (connection) lib/connection.ex:622: Connection.enter_connect/5 
     (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 
Build failed !!!. 

Так что я теперь думаю, что решение может быть this. Я не знаю много о добавлении ключа ssh.

+0

Это не проблема с портом HTTP для Phoenix. Это связано с тем, что PostgreSQL не работает на localhost: 5432 на сервере CI. Вероятно, вам нужно включить его где-нибудь в CI или изменить конфигурацию, если они запускают PostgreSQL на другом порту. – Dogbert

+0

@Dogbert Would изменения конфигурации в '' dev.exs' в конфигурации: phoenix_chat, PhoenixChat.Repo, адаптер: Ecto.Adapters.Postgres, имя пользователя: "Postgres", пароль: "Postgres", базы данных: " phoenix_chat_dev ", имя хоста:" localhost: 5432 ", pool_size: 10' на правильном пути? (Это не имело значения - такая же ошибка) - изменением было имя хоста – BeniaminoBaggins

+0

Это должно быть «имя хоста:« localhost », порт: 5432, ...», но 5432 по умолчанию, а ошибка говорит, что PostgreSQL не работает на localhost: 5432. Вы должны узнать, что хост/порт PostgreSQL запущен на сервере CI, и если он отключен по умолчанию (например, в Travis, вам нужно добавить конфигурацию, чтобы включить PostgreSQL: https://docs.travis-ci.com/user/ базы данных установки/# PostgreSQL). – Dogbert

ответ

0

Мой ноутбук разбился и оставил postmaster.pid файл лежал в /usr/local/var/postgres.

После удаления этого сообщения postgres начали работать снова красиво.

Если вы хотите проверить, работает ли postgres правильно, вы можете запустить pq_ready, чтобы получить результат. Вы должны получить: /tmp:5432 - accepting connections - ваш порт может меняться в зависимости от вашей конфигурации.

Удачи!

 Смежные вопросы

  • Нет связанных вопросов^_^