Просмотр базы данных в Heroku

У меня установлено приложение Django на Heroku, и база данных начинает собирать данные. Для более легкой отладки я бы хотел подключить машину для разработки непосредственно к базе данных. Можно ли это сделать с Heroku?

3 ответа

Решение

Как говорит Кирстен, планы совместной базы данных в настоящее время недоступны извне платформы Heroku (это зарезервировано для "производственного" сервиса Postgres). Однако есть несколько других вариантов.

Одним из основных является сбор данных и их локальный просмотр. С помощью Taps rubygem это, к счастью, очень и очень просто:

$ heroku db:pull
...
Receiving schema
Receiving data
8 tables, 591 records
users:         100% |==============================================| Time: 00:00:00
pages:         100% |==============================================| Time: 00:00:00
comments:      100% |==============================================| Time: 00:00:00
tags:          100% |==============================================| Time: 00:00:00
Receiving indexes
Resetting sequences

Есть несколько других доступных опций, которые могут облегчить эту задачу, если вы используете большой набор данных:

# -c, --chunksize SIZE # specify the number of rows to send in each batch
# -d, --debug          # enable debugging output
# -e, --exclude TABLES # exclude the specified tables from the push
# -f, --filter REGEX   # only push certain tables
# -r, --resume FILE    # resume transfer described by a .dat file
# -t, --tables TABLES  # only push the specified tables

Все это можно увидеть в источнике самоцвета heroku.

Отводы также можно использовать вне контекста Heroku. Смотрите README для получения дополнительной информации.,

Второй вариант, который гораздо предпочтительнее для больших наборов данных, - это использование дополнения Heroku pgbackups. Это позволит вам создать дамп вашей базы данных, а затем загрузить файл локально для импорта в чистую БД. Это значительно быстрее, чем тапы из-за способа работы тапов.

Использовать приятно и просто:

$ heroku update

$ heroku addons:add pgbackups
Adding pgbackups to myapp... done

$ heroku pgbackups:capture

DATABASE_URL  ----backup--->  b003

Dump... 2.6MB, done
Upload... 2.6MB, done

$ heroku pgbackups
ID   | Backup Time         | Size    | Database             
-----+---------------------+---------+----------------------
b003 | 2010/10/22 15:16.01 |   2.6MB | SHARED_DATABASE_URL  
b004 | 2010/10/22 15:18.12 | 424.7MB | HEROKU_POSTGRESQL_URL

$ heroku pgbackups:url b004
"http://s3.amazonaws.com/hkpgbackups/app1234567@heroku.com/b004.dump?AWSAccessKeyId=ABCD1234&Expires=1289261668&Signature=3mMBeKISewgEUDT%2FL5mRz4EYS4M%3D"

Этот последний URL может быть загружен и импортирован.

Я не проверял но database_url использовать, чтобы включить всю конфигурацию для базы данных

например

DATABASE_URL => postgres://name:password@ec2-107-22-181-237.compute-1.amazonaws.com/kjrbnwxjoc

теперь отображается на database.yml

адаптер: база данных postgres: пул kjrbnwxjoc: 5 тайм-аут: 5000 имя пользователя: имя пароль: пароль хост: ec2-107-22-181-237.compute-1.amazonaws.com

Надеюсь, что это поможет вам до тех пор, пока heroku не разрешит удаленный доступ к своей базе данных, и надеюсь, что нет, потому что если они позволили вам получить удаленный доступ к БД, то вы можете наложить любую нагрузку на их БД. В целях отладки вы можете использовать xeround для настройки в качестве базы данных для приложения heroku и локального приложения... они дают пробный период.

Спасибо

Я не думаю, что вы можете использовать конфиг для прямого доступа. Согласно документации к героку здесь: http://devcenter.heroku.com/articles/database

Могу ли я получить доступ к своей базе данных из другого приложения или хоста? Общая база данных

Нет, подключение к вашей базе данных с компьютеров за пределами Heroku не поддерживается. Мы рекомендуем инкапсулировать доступ к данным в API, чтобы манипулировать им.

Выделенная база данных

Можно подключиться к нашим выделенным базам данных, используя нашу функцию pg:ingress. Пожалуйста, смотрите использование консоли PG для получения дополнительной информации.

Другие вопросы по тегам