Просмотр базы данных в Heroku - PullRequest
0 голосов
/ 29 января 2012

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

Ответы [ 3 ]

3 голосов
/ 29 января 2012

Как говорит Кирстен, планы общих баз данных в настоящее время недоступны извне платформы 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 .Это позволит вам создать дамп вашей базы данных, а затем загрузить файл локально для импорта в чистую БД.Это значительно быстрее, чем Taps, благодаря тому, как работает Taps.

Использовать удобно и просто:

$ 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 можно загрузить и импортировать.

0 голосов
/ 29 января 2012

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

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

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

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

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

0 голосов
/ 29 января 2012

я не тестировал, но 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 и локального приложения ... они дают пробный период.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...