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

Свързване на Django и Postgresql с Docker

Dockerfile за вашето Django изображение не трябва да излага порт 5432 тъй като нито един сървър на Postgresql няма да работи в контейнер, създаден от това изображение:

FROM python:3-onbuild
EXPOSE 8000
CMD ["/bin/bash"]

След това, докато изпълнявате контейнера на Django, го свързвате с

--link my-postgres:my-postgres

вашите настройки за базата данни са неправилни.

В контейнера на Django:127.0.0.1 се отнася за контейнера на Django, който не изпълнява никаква услуга, слушаща на порт 5432.

Така че вашият файл settings.py трябва да бъде:

  DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.postgresql_psycopg2',
       'NAME': 'mydb',                      
       'USER': 'postgres',
       'PASSWORD': '',
       'HOST': 'my-postgres',                      
       'PORT': '5432',                      
    }
  }

Докато изпълнявате своя Django контейнер с:

sudo docker run --link my-postgres:db -v /home/mpmsp/project/ezdict/ezbkend:/usr/src/app -name my-app -i -t my-app

след това вашият settings.py файлът трябва да бъде:

  DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.postgresql_psycopg2',
       'NAME': 'mydb',                      
       'USER': 'postgres',
       'PASSWORD': '',
       'HOST': 'db',                      
       'PORT': '5432',                      
    }
  }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Масивът TypeORM не се поддържа в postgres?

  2. Postgresql - Преномериране на колони

  3. Използване на хибернация с много нишки

  4. Вземете само последните данни от миналата седмица и сумирайте няколко колони

  5. Как да потърся нулеви стойности в json поле тип postgresql?