У меня есть приложение Django в настройке Heroku, и база данных начинает собирать данные. Чтобы легче отлаживать вещи, я хотел бы подключить свою машину разработки непосредственно к базе данных. Возможно ли это с Героку?
Просмотр базы данных в Heroku
Ответ 1
Как говорит Кирстен, общие планы базы данных в настоящее время недоступны из-за пределов платформы 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. Подробнее читайте в 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/[email protected]/b004.dump?AWSAccessKeyId=ABCD1234&Expires=1289261668&Signature=3mMBeKISewgEUDT%2FL5mRz4EYS4M%3D"
Этот последний URL-адрес можно загрузить и импортировать.
Ответ 2
Я не тестировал, но database_url использовал для включения всей конфигурации для базы данных
например
DATABASE_URL = > postgres://name: [email protected]/kjrbnwxjoc
теперь отображение в database.yml
адаптер: postgres база данных: kjrbnwxjoc бассейн: 5 таймаут: 5000 имя пользователя: name пароль: пароль хозяин: ec2-107-22-181-237.compute-1.amazonaws.com
Надеюсь, что это поможет вам до тех пор, пока и геройки не смогут удаленно обращаться к своей базе данных и, надеюсь, не потому, что если они позволят вам получить доступ к db удаленно, вы можете наложить любую нагрузку на свой db. Для цели отладки вы можете использовать xeround для настройки в качестве базы данных для приложения heroku и локального приложения... они дают пробный период.
Спасибо
Ответ 3
Я не думаю, что вы можете использовать конфигурацию для прямого доступа. Согласно документации герою здесь: http://devcenter.heroku.com/articles/database
Могу ли я получить доступ к моей базе данных из другого приложения или хоста? Общая база данных
Нет, подключение к вашей базе данных с компьютеров за пределами Heroku не поддерживается. Мы рекомендуем вам инкапсулировать доступ к данным в API для управления им.
Выделенная база данных
Его можно подключить к нашим выделенным базам данных, используя нашу функцию pg: ingress. Для получения дополнительной информации см. Использование консоли PG.