sql >> Database teknologi >  >> RDS >> PostgreSQL

Sammenkædning af Django og Postgresql med Docker

Dockerfilen for dit Django-billede bør ikke eksponere port 5432 da ingen Postgresql-server vil køre i nogen container, der er oprettet fra det billede:

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

Så mens du kører Django-beholderen, forbinder du den med

--link my-postgres:my-postgres

dine indstillinger for databasen er forkerte.

I Django-containeren:127.0.0.1 refererer til Django-containeren, som ikke kører nogen tjeneste, der lytter på port 5432.

Så din settings.py-fil skal være:

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

Mens du kører din Django-beholder med:

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

derefter din settings.py fil skal være:

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


  1. hvordan man indstiller automatisk stigningskolonne med sql-udvikler

  2. Find det sidste indeks af en streng i Oracle

  3. Sådan finder du dubletter i 2 kolonner ikke 1

  4. Hvordan INSERT INTO Tabel fra dynamisk forespørgsel?