Escribí el pg:pull
y pg:push
comandos.
pg:pull
y pg:push
ambos usan el pg_dump
comando y canalícelo directamente a pg_restore
(código fuente). Desafortunadamente, hay problemas con pg:push,pull
en Windows en el momento de esta respuesta, septiembre de 2014. Estos problemas no son insuperables, por lo que si llega a esta respuesta más adelante, verifique si se pudo haber solucionado.
El env
El comando usado aquí y aquí no creo que esté en Windows, por lo que tiene que hacer las cosas de PGUSER y PGPASSWORD. Sin embargo, el motivo del env
es que pg_dump
necesita diferentes variables de entorno que pg_restore
.
Hice un intento de arreglar eso una vez, usando popen para configurar los comandos de forma independiente, luego conéctelos juntos en lugar de usar una tubería. Sin embargo, no pude hacerlo funcionar y tuve que parar.
Estaría muy feliz de revisar cualquier parche que vaya hasta el final y solucione este problema, solo mencione @ en una solicitud de incorporación al proyecto heroku/heroku.
Perdón por no haber solucionado este problema :(
En su lugar, y hasta que esto se solucione, puedes usar el pg_dump
y pg_restore
comandos por separado, directamente. Es más engorroso como un proceso de 2 pasos y tener que buscar las credenciales remotas, pero haría el trabajo. La fuente vinculada en el gen_pg_*_command
los métodos muestran cómo usar pg_dump
y pg_restore
.