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

Управление БД для приложений Heroku

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

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

Ответ 3

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

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

Получение данных

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

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

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

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

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