PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ECONNREFUSED за Postgres на nodeJS с докери

Вашият DATABASE_URL се отнася до 127.0.0.1 , който е loopback адаптер (повече тук). Това означава „свържете се със себе си“.

Когато стартирате и двете приложения (без да използвате Docker) на един и същ хост, и двете са адресируеми на един и същ адаптер (известен също като localhost ).

Когато стартирате и двете приложения в контейнери, те не са и двете на localhost както преди. Вместо това трябва да посочите web контейнер към db IP адреса на контейнера в docker0 адаптер - който docker-compose комплекти за вас.

Промяна:

127.0.0.1 до CONTAINER_NAME (напр. db )

Пример:

DATABASE_URL: postgres://username:[email protected]:5432/mydatabase

до

DATABASE_URL: postgres://username:[email protected]:5432/mydatabase

Това работи благодарение на връзките на Docker:web контейнерът има файл (/etc/hosts ) с db запис, сочещ към IP, че db контейнерът е включен. Това е първото място, където системата (в този случай контейнерът) ще гледа, когато се опитва да разреши имена на хостове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пренасочване на вмъкване, базирано на задействане на Postgres, без прекъсване на RETURNING

  2. Проверете дали съществува стойност в масива на Postgres

  3. Връщане като масив от JSON обекти в SQL (Postgres)

  4. Актуализирайте множество колони в тригерна функция в plpgsql

  5. Заявка за тип данни на Postgres JSON Rails