Не проверял это, но это могло бы работать.
Сделайте это, чтобы получить URL вашей исходной базы данных:
heroku console "ENV['DATABASE_URL']" --app mysourceapp
Затем попробуйте выполнить db:push
с этим.
heroku db:push database_url_from_before --app mytargetapp
Это может не работать, если Heroku не разрешает доступ к машинам БД из-за пределов их сети, что, вероятно, и так.Вы могли бы, возможно, попробовать использовать tap-ы (гем, который команды heroku db используют внутри) где-то внутри кода вашего приложения (может быть, задача rake).Это было бы даже быстрее, чем описанный выше подход, потому что все остается полностью в AWS.
Редактировать:
Вот (по общему признанию хакерский) способ сделать то, что я описал выше:
Получить URL базы данных, как показано в первом фрагменте кода выше.Затем из задачи rake (вы можете сделать это на консоли, но вы рискуете столкнуться с 30-секундным лимитом времени ожидания для команд консоли), выполните команду оболочки для меток (трудно определить, можно ли использовать метки напрямую из Ruby; вседокументы показывают использование CLI):
`taps pull database_url_from_source_app #{ENV['DATABASE_URL']}`
Обратные знаки важны;Вот как Ruby обозначает команду оболочки, которая называется tap.Надеемся, что команда taps доступна из приложения.Это позволяет избежать проблемы доступа к компьютеру базы данных из-за пределов Heroku, поскольку вы запускаете эту команду из своего приложения.