PostgreSql не приходит к базе данных из проекта Django

Я использую PostgreSql в качестве базы данных в своем проекте Django. Когда я запускаю его локально через pgAdmin, данные появляются, но когда я запускаю его на сервере, данные не появляются в pgAdmin.

Django settings.py

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'xxxx',
    'USER' : 'xxx',
    'PASSWORD': 'xxx',
    'HOST': 'pgdb',
    'PORT': 5432,
}

}

docker-compose.yaml

services:
# CaddyServer reverse proxy
caddy:
    restart: always
    image: caddy:2-alpine
    ports:
        - "443:443"
    command: caddy reverse-proxy --from https://xxxxxx.com --to http://0.0.0.0:8000
    #volumes:
    #    - /local/path/to/Caddyfile:/path/inside/continer/to/Caddyfile
    #     networks:
    #   - web
    #   - bridge

# Django web app
django:
    restart: always
    build: .
    ports:
      - "80:8000"
    depends_on:
      - pgdb
    #environment:
    #    - url=https://api.backend.example.com
    #command: "gunicorn config.wsgi:application --bind 0.0.0.0:8000"
    #networks:
    #   - bridge
pgdb:
    image: postgres
    container_name: pgdb
    environment:
      - POSTGRES_DB=xxxx
      - POSTGRES_USER=xxxx
      - POSTGRES_PASSWORD=xxxx
    volumes: 
      - pg-data:/var/lib/postgresql/data/

volumes: pg-data:

Я подключаюсь через ip сервера pgAdmin. Соединение pgAdmin устанавливается, но данные, которые я ввел в систему, не видны на pgAdmin.

Это потому, что он находится не внутри вашей базы данных postgres, а только в pg_admin

Я бы предложил вам выполнить эту команду через ssh, чтобы получить список баз данных:

psql -l

После того, как вы получили все имена бд и их владельцев, проверьте, появилась ли ваша бд. Если да, попробуйте получить к ней доступ с помощью:

psql -U your_db_username || psql -U your_db_username -d your_db_name

Оцените и запросите свои таблицы, чтобы убедиться, что данные действительно есть.

Если его там нет, то я бы предложил сделать дамп базы данных с помощью:

pg_dump -U db_username db_name > your_backup.pgsql

После этого необходимо восстановить этот дамп через терминал в postgres:

psql -U db_username --set ON_ERROR_STOP=on -f your_backup.pgsql

Дайте мне знать, помогло ли вам это. Я могу помочь вам в дальнейшем, если это поможет, но вы столкнетесь с новыми/другими проблемами.

Вернуться на верх