2014-10-23 3 views
1

Я запускаю boot2docker на OSX 10.10. У меня установлен контейнер базы данных, поэтому мои базы данных не обновляются каждый раз, когда я запускаю/останавливаю контейнер. Я хотел бы импортировать дамп базы данных postgres из heroku в мою базу данных докеров. Возможно ли это сделать?Импорт базы данных postgres базы данных heroku в контейнер базы данных докеров с boot2docker

ответ

4

В итоге я выяснил это с помощью коллеги. Это немного сложнее, чем просто обычная старая база данных postgres, но не так много. Это основано на ответе stackoverflow this.

  1. Создание собственной базы данных Heroku свалка URL загрузки: heroku pgbackups:url
  2. Start Баш оболочки на вашем Postgres контейнере. В моей системе этот контейнер был назван pg: fig run db bash
  3. Установите ротор: apt-get update && apt-get install curl
  4. Загрузить дамп базы данных с помощью завиток: curl -o latest.dump [PASTE THE OUTPUT OF STEP 1 HERE]
  5. Импорт дамп (примечание, имя базы данных и имя пользователя можно найти в fig.yml и базы данных .yml соответственно): pg_restore --verbose --clean --no-acl --no-owner -h [YOUR BOOT2DOCKER IP] -U [YOUR_USERNAME] -d [DATABASE_NAME] latest.dump

И вот оно у вас есть!

Если последний шаг не сработал с некорректной ошибкой базы данных, дважды проверьте last.dump с head latest.dump. Если вы чувствуете, что ваша база данных не загружается правильно, вы можете вручную загрузить ее через веб-gui и загрузить ее на другой хост, например, в папку. Затем вы замените шаг 1 любым URL-адресом, на котором может быть найден ваш дамп.

+0

Шаг №2 не работает. не могли бы вы рассказать подробнее. –

+0

Шаг №2 - как вы попадаете в контейнер для докеров. В зависимости от того, как вы используете свой контейнер, это может быть немного иначе. Обычно я использую '' 'docker exec -i -t <имя контейнера>/bin/bash''' – Corey

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