gpt4 book ai didi

postgresql - 如何用 fig 恢复 postgres 数据库?

转载 作者:行者123 更新时间:2023-11-29 13:58:05 25 4
gpt4 key购买 nike

我正在尝试将 FIG ( http://www.fig.sh/ ) 用于 Django 应用程序。我无法从转储中重新创建数据库,我尝试:

fig run db pg_restore -d DBNAME < backup.sql

并得到:

socket.error: [Errno 104] Connection reset by peer

但是这次运行(仍然看不到数据库中的表):

fig run db pg_restore < backup.sql

这是 dockerfile:

FROM python:3.4
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
ADD backup.sql /code/
RUN pip install -r requirements.txt
RUN pg_restore -d postgres backup.sql
ADD . /code/

和图.yml:

db:
image: postgres
ports:
- 5432
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db

最佳答案

当你运行时

fig run db pg_restore -d DBNAME < backup.sql

postgresd 没有运行。您已将守护进程的启动替换为 pg_restore 命令。

我建议这样做:

  1. 将 backup.sql 移动到 dockerfiles/db/backup.sql
  2. 创建一个 dockerfiles/db/Dockerfile
  3. 更改您的 fig.yml 以改为使用 db 构建

docker 文件

FROM postgres
ADD . /files
WORKDIR /files
RUN /etc/init.d/postgresql start && \
pg_restore -d DBNAME < backup.sql && \
/etc/init.d/postgresql stop

图.yml

db:
build: dockerfiles/db

现在,当您运行任何 fig 命令时,您的数据库应该已经准备就绪

关于postgresql - 如何用 fig 恢复 postgres 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com