No lo he probado, pero podría funcionar.
hacen esto para obtener la URL de su base de datos fuente:
heroku console "ENV['DATABASE_URL']" --app mysourceapp
A continuación, intente ejecutar db:push
con eso.
heroku db:push database_url_from_before --app mytargetapp
Esto podría no funcionar si Heroku no permite el acceso a las máquinas DB desde fuera de su red, que es probablemente el caso. Tal vez podrías intentar usar los grifos (gema que heroku db comandos usa internamente) desde el código de tu aplicación en algún lugar (tal vez una tarea de rake). Esto sería incluso más rápido que el enfoque anterior porque todo se mantiene completamente dentro de AWS.
Editar:
Aquí está una manera (la verdad hacky) para hacer lo que he descrito anteriormente:
Grab la URL base de datos como en el primer fragmento de código anterior. Luego, desde una tarea de rake (puede hacerlo en la consola pero corre el riesgo de alcanzar el límite de tiempo de espera de 30 segundos en los comandos de la consola), ejecute un comando de shell para tocar (no podría determinar fácilmente si es posible usar los grifos directamente desde Ruby; docs muestran el uso de la CLI):
`taps pull database_url_from_source_app #{ENV['DATABASE_URL']}`
Los backticks son importantes; así es como Ruby denota un comando de shell, que toca. Esperemos que el comando de grifos sea accesible desde la aplicación. Esto evita el problema de acceder a la máquina de la base de datos desde fuera de Heroku, ya que está ejecutando este comando desde su aplicación.
Nota al margen: manojos Heroku y Bündler son conceptos distintos y no relacionados. – tfe
ah sí, ni siquiera estaba pensando en esa posible confusión cuando lo escribí. – holden