2014-12-10 2 views
1

Я пытаюсь использовать FIG (http://www.fig.sh/) для приложения django. Я не могу воссоздать базу данных из дампа, я стараюсь:Как восстановить базу данных postgres с помощью fig?

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/ 

И 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 

ответ

0

При запуске

fig run db pg_restore -d DBNAME < backup.sql 

postgresd не работает. Вы заменили запуск демона командой pg_restore.

Я предложил бы делать что-то вроде этого:

  1. Move backup.sql к dockerfiles/дб/backup.sql
  2. Создать dockerfiles/дб/Dockerfile
  3. изменения ваш fig.yml использовать построить для БД вместо

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 

Теперь при запуске любой команды фига ваша база данных должна быть готова пойти

Смежные вопросы