Запуск приложения Rails с использованием NoSQL и использование Postgresql во время развертывания или производства

#ruby-on-rails #ruby #postgresql #heroku

#ruby-on-rails #ruby #postgresql #heroku

Вопрос:

Я хотел бы понять, как я могу запустить приложение rails, которое использует NoSQL при первом создании, а затем при развертывании или запуске проекта в производство использовать Postgresql?

Я действительно новичок в rails, и через 4 дня у меня должен быть проект, который требует, чтобы у меня был Postgresql после развертывания приложения в Heroku.

Любая информация была бы отличной, спасибо.

Комментарии:

1. Есть ли причина, по которой вы не можете просто использовать PG с нуля?

2. вы должны использовать одну и ту же базу данных при разработке и производстве, иначе будут драконы

3. Хорошие моменты. Как насчет того, чтобы вместо этого, когда я перехожу со своего локального сервера postgres на сервер heroku, я просто обновил UN / PW / Port и все?

4. используете ли вы active record? Если это так, вы можете изменить свою производственную базу данных только через config/database.yml. Но если вы используете какой-то пользовательский ORM NoSQL, вам придется переводить.

Ответ №1:

Я действительно рекомендую вам использовать ту же БД в средах разработки, тестирования и производства. В противном случае вы столкнетесь со многими проблемами с точки зрения файла схемы (созданного в результате миграции). Он начинается с простой длины строк, поддерживаемой PG или MySQL (ограничения MySQL больше), а также для таких типов, как ‘inet’ в PG, которые должны быть преобразованы в ‘string’ в MySQL. BTW — тип inet создается Devise для ‘user’ (который является самым популярным gem длямодель аутентификации! Даже в этом случае вы будете получать ошибки.

Для прямого ответа — вы можете просто изменить адаптер базы данных в файле config /database.yml.

Но, по моему опыту, для некоторых клиентов, которые явно запрашивали преобразование PG в MySQL (противоположная сторона, на самом деле не имеет значения), я бы предложил везде использовать одну и ту же БД. Или еще — драконы.