PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Łączenie Django i Postgresql z Docker

Plik Dockera dla twojego obrazu Django nie powinien ujawniać portu 5432 ponieważ żaden serwer Postgresql nie będzie działał w żadnym kontenerze utworzonym z tego obrazu:

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

Następnie, gdy uruchamiasz kontener Django, łącząc go z

--link my-postgres:my-postgres

Twoje ustawienia bazy danych są nieprawidłowe.

W kontenerze Django:127.0.0.1 odnosi się do kontenera Django, który nie obsługuje żadnej usługi nasłuchującej na porcie 5432.

Więc twój plik settings.py powinien być:

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

Gdy uruchamiasz kontener Django za pomocą:

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

następnie Twój settings.py plik musiałby być:

  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. CONSTRAINT do sprawdzania wartości ze zdalnie powiązanej tabeli (poprzez połączenie itp.)

  2. Postgresql - Używanie podzapytań z wyrażeniami alter sekwencji

  3. Funkcja zastępowania encji PostgreSQL w HTML

  4. Zadanie cron do usuwania starych danych z postgres na debianie

  5. grupować według potrzebne w instrukcji SQL count(*)?