ОБНОВЛЕНО
Первоначально, в этом ответе говорилось, что хотя это было возможно с помощью нескольких уловок, это было решительно обескураженным. Это было основано на рекомендациях на сайте поддержки разработчиков Heroku. Тем не менее, недавно Heroku выпустил сообщение, конкретно описывающее, как этого добиться, и разбавил свои рекомендации на сайте разработчиков. Полный текст этого раздела их электронной почты приведен ниже:
Знаете ли вы, что приложения Heroku могут
поделиться общей базой данных? Например, вы можете поставить аналитические функции
в отдельном приложении от вашего пользовательского кода.
Просто установите переменную конфигурации DATABASE_URL для нескольких приложений в одно и то же
значение. Сначала получите DATABASE_URL для вашего существующего приложения:
$ heroku config | grep DATABASE_URL --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute1.amazonaws.com/ldfoiusfsf
Затем установите DATABASE_URL для новых приложений на это значение:
$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf --app sushi-analytics
Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf Restarting app... done, v74. That's it
- теперь оба приложения будут совместно использовать одну базу данных.
Точно так же оригинальным советом Heroku было создание и использование API для удаленного доступа к данным. Мое личное мнение таково, что в целом для многих ситуаций это хороший совет (т. Е. Лучше, чем просто подключение нескольких приложений к одной и той же БД), хотя я могу видеть ситуации, когда это будет больше проблем, чем стоит.
UPDATE
Что касается комментариев к этому ответу, стоит отметить, что Heroku оставляет за собой право изменять URL-адреса базы данных по мере необходимости. Если это произойдет, это приведет к сбою вторичных подключений, и вам необходимо соответствующим образом обновить URL-адреса.