【问题标题】:how to dump postgres database in django?如何在 django 中转储 postgres 数据库?
【发布时间】:2023-03-29 15:04:01
【问题描述】:

我有一个在 docker 容器中运行的应用程序和在 docker 容器中运行的 psql 数据库。我想在 django 容器中转储数据库,我知道 django 中有 dumpdata 但此命令需要很长时间,我也尝试过 docker exec pg_dump 但在 django 容器中此命令不起作用。

   services:
  db_postgres:
    image: postgres:10.5-alpine
    restart: always
    volumes:
      - pgdata_invivo:/var/lib/postgresql/data/
    env_file:
      - .env

  django:
    build: .

    restart: always
    volumes:
      - ./static:/static
      - ./media:/media
    ports:
      - 8000:8000
    depends_on:
      - db_postgres
    env_file:
      - .env

在 django 容器中,有什么方法可以在不使用 docker exec pg_dump 的情况下执行 pg_dump 吗?

【问题讨论】:

  • 为什么不在 postgres 容器中运行pg_dumpdocker compose exec db_postgres pg_dump <schema> > dump_file
  • 是的,但我需要在 django 应用程序中完成
  • @dev-beginer 好吧,你可以在你的 django 应用容器中安装postgresql-client。但是,有什么特别的理由可以从应用容器中执行此操作吗?
  • 我想在 django admin 中转储数据库,因为我需要在 django 容器中运行 pg_dump

标签: django postgresql docker-container


【解决方案1】:

当你的容器运行时输入:

docker-compose down -v

这将删除卷,因此存储在容器数据库中的所有数据都将被删除。

现在运行

docker-compose up --build
docker-compose exec django python manage.py migrate

再次创建您的表格。

【讨论】:

    猜你喜欢
    • 2020-12-21
    • 2015-10-11
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2017-12-09
    • 1970-01-01
    • 2017-01-20
    相关资源
    最近更新 更多