簡體   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