Подтвердить что ты не робот

Как импортировать большую базу данных из Heroku в локальный mysql или sqlite3?

В соответствии с заголовком мне нужно импортировать, но резервные копии PG предоставляют мне строгий Postgres SQL, который не работает с MySQL, также с не указанной кодировкой, которая, я думаю, является UTF-16. Использование db: pull занимает домены и ошибки до окончания. Буду признателен за любое предложение. Спасибо.

4b9b3361

Ответ 1

Настройте PostgreSQL локально, используйте PG backups, чтобы скопировать данные из Heroku на ваш локальный компьютер, затем pg_restore, чтобы импортировать его в новый локальный PostgreSQL. Затем вы можете скопировать его из PostgreSQL в MySQL или SQLite локально, не беспокоясь о тайм-аутах. Или, поскольку после этого у вас будет функциональная установка PostgreSQL, просто начните разработку поверх PostgreSQL, чтобы ваш стек разработки лучше соответствовал вашему стеку развертывания; разработка и развертывание в одной базе данных - хорошая идея.

Вероятно, вы получаете двоичные дампы (т.е. pg_dump -Fc) от Heroku, что объясняет, почему дамп выглядит как какой-то UTF -16 ерунда.

Вы можете использовать pgbackups addon для экспорта дампа базы данных

$ heroku addons:add pgbackups # To install the addon
$ curl -o latest.dump `heroku pgbackups:url` # To download a dump

Ответ 2

Heroku имеет инструкции о том, как это сделать: https://devcenter.heroku.com/articles/heroku-postgres-import-export#restore-to-local-database, который сводится к:

$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump

где myuser - текущий пользователь, а mydb - текущая база данных.

Если вы используете Postgres.app, довольно сложно скопировать вашу производственную базу данных локально. Вы можете оставить -U myuser, если вы не настроили его иначе, и создать базу данных, запустив $ psql -h localhost, а затем CREATE DATABASE your_database_name; (из документа Postgres.app. Затем запустите указанную выше команду и вы установите.

Ответ 3

Следуйте этим 4 простым шагам в вашем терминале
(Центр Heroku Dev):

  • Установите инструмент архивирования Heroku:

    $ heroku addons:add pgbackups
    
  • Начните использовать его:

    $ heroku pgbackups:capture
    
  • Загрузите удаленный db на Heroku (на ваш локальный компьютер) с помощью curl:

    $ curl -o latest.dump 'heroku pg:backups public-url'
    
  • Загрузите его *:

    $ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U YOUR_USERNAME -d DATABASE_NAME latest.dump
    
    • получите свое имя пользователя и выберите нужную базу данных из файла config/database.yml.
    • DATABASE_NAME может быть вашей разработкой/тестом/производством db (пример mydb_development)

Что это!

UPDATE: Он обновляется до нового интерфейса