Управление БД для приложений Heroku - PullRequest
18 голосов
/ 16 марта 2010

Я довольно новичок в Rails и Heroku, но я серьезно думаю об использовании его в качестве платформы для развертывания моих приложений Ruby / Rails.

Я хочу использовать всю мощь Heroku, поэтому я предпочитаю «встроенный» PostgreSQL, управляемый Heroku, а не надстройку для Amazon RDS для MySQL, но я не настолько уверен, что у меня нет возможности получить доступ к моим данным Клиент SQL ...

Я знаю, что в хорошо сделанном приложении вам нет необходимости обращаться к БД, но есть некоторые ситуации (добавление строк в таблицу конфигурации, просмотр данных, не сопоставленных в представлении, обновление некоторых столбцов для устранения проблем отладки, мониторинг производительности, выполнение запросов для отчетов и т. д.) когда это может быть хорошо ...

Как вы решаете эту проблему? Что вы испытываете в реальном приложении от Heroku?

Спасибо!

Ответы [ 3 ]

11 голосов
/ 17 марта 2010

Я использую его около года. Мне нравится рабочий процесс, который он предоставляет, но я нахожу отсутствие доступа к данным реальным беспокойством. Ваши варианты работы с базой данных:

Тапы. Теоретически вы создаете базу данных так, как хотите, и используете метки для копирования схемы и данных в Heroku. На практике большую часть времени это удивительно здорово. Однако в настоящее время я занимаюсь очисткой после того, как касания плохо перевели некоторые мои столбцы и повредили мои данные.

Консоль Heroku: Полностью подходит для всех обычных вещей ActiveRecord, но ближе всего к базе данных вы можете получить ActiveRecord :: Base.connection.execute "some sql". Когда вы обнаружите, что задаетесь вопросом о таких командах изменения таблицы, вы будете знать, что у вас проблемы.

Они также предоставляют «комплект» в качестве метода для резервного копирования вашего приложения. Это позволяет вам загрузить весь ваш код плюс дамп базы данных sql. Сложность состоит в том, что, поскольку нет прямого доступа к базе данных, нет способа загрузить этот же дамп sql обратно в базу данных, поэтому вы можете восстановить данные из dataloss, что, с моей точки зрения, имеет смысл начинать с этих файлов дампа. Все, для чего вы можете использовать пакет, - это создать новое приложение (heroku bundles: animate), а не восстановить текущее приложение.

Я бы хотел быть неправым в отношении любого / всего этого. Это похоже на странное грубое пятно в самом продуманном сервисе, о котором я знаю. Доступ к базе данных, как правило, не кажется слишком сложным, когда большая часть того, что вы делаете, делается так легко.

Для меня доступ к базе данных подобен огнетушителю. Обычно не имеет большого значения, но когда это имеет значение, это имеет большое значение.

6 голосов
/ 16 марта 2010

Я использую admin_data , чтобы дать мне некоторое представление о том, что происходит. Я успешно использовал его на Heroku, а также на других хостинг-провайдерах.

4 голосов
/ 16 марта 2010

Во-первых, позвольте мне начать с того, что heroku потрясающий . У меня был большой опыт развертывания моего приложения и интеграции с другими его службами, такими как websolr.

С учетом сказанного, ваши вопросы:

Получение на ваши данные

Если вы хотите получить доступ к вашим данным, вы можете использовать taps для локального удаления вашей удаленной базы данных. Это может быть полезно для отладки.

Контроль производительности

Использовать новые реликтовые обороты. Это входит в состав heroku, вы можете включить его из меню дополнений.

Дополнительные запросы к базе данных

Вы можете написать контроллер, который позволит вам выполнить произвольный sql и просмотреть результаты, но я бы не рекомендовал это делать. Как подсказывает admin_data является хорошим решением для управления вашими данными, но если вы хотите сделать что-то более сложное, вам придется прибегнуть к написанию кода самостоятельно.

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