繁体   English   中英

如何用fig还原一个postgres数据库?

[英]How restore a postgres database with fig?

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

fig run db pg_restore -d DBNAME < backup.sql

得到:

socket.error:[Errno 104]对等重置连接

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

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/

和fig.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以改为使用build作为数据库

Dockerfile

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

fig.yml

db:
    build: dockerfiles/db

现在,当您运行任何无花果命令时,数据库应该已准备就绪

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM