I'm not able to get the data I fill in my models to go to my database. When I do the migrations, the project works in browser, on localhost, but when I view it inside the postgres database, nothing appears. I made my docker-compose in a way that it does the migrations itself, however, still nothing happens.
docker-compose.yml
version: "3.9"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_ENGINE=${POSTGRES_ENGINE}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_PORT=${POSTGRES_PORT}
web:
build: .
command: >
sh -c "python manage.py makemigrations &&
python manage.py migrate &&
python manage.py runserver 0.0.0.0:8000"
volumes:
- .:/code
ports:
- "8000:8000"
environment:
- POSTGRES_ENGINE=${POSTGRES_ENGINE}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_PORT=${POSTGRES_PORT}
depends_on:
- db
I've tried everything, I've looked in several places, but nothing makes my migrations go to my database. Can someone help me?
Dockerfile
FROM python:3.8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
settings.py
DATABASES = {
'default': {
'ENGINE': os.environ.get('POSTGRES_ENGINE'),
'NAME': os.environ.get('POSTGRES_DB'),
'USER': os.environ.get('POSTGRES_USER'),
'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
'HOST': os.environ.get('POSTGRES_HOST'),
'PORT': os.environ.get('POSTGRES_PORT'),
}
}
I managed to find out what the problem was. I specified the port inside docker-compose and took it into my.env file and distributed to both my docker-compose and my django
follow changes in my docker-compose.yml:
version: "3.9"
services:
db:
image: postgres
ports:
- 5001:5432
volumes:
- ./data/db:/var/lib/postgresql/data
env_file:
- .env
web:
build: .
command: >
sh -c "python manage.py migrate &&
python manage.py runserver 0.0.0.0:8000"
volumes:
- .:/code
ports:
- "8000:8000"
env_file:
- .env
depends_on:
- db
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.