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

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

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

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

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

Спасибо!

18
задан John Topley 16 March 2010 в 20:55
поделиться

3 ответа

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

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

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

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

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

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

11
ответ дан 30 November 2019 в 08:52
поделиться

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

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

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

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

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

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

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

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

4
ответ дан 30 November 2019 в 08:52
поделиться

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

6
ответ дан 30 November 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: