Eu escrevi o
pg:pull e pg:push comandos. pg:pull e pg:push ambos usam o pg_dump comando e canalize isso diretamente para pg_restore (Código fonte). Infelizmente, existem problemas com pg:push,pull no Windows no momento desta resposta, setembro de 2014. Esses problemas não são insuperáveis, portanto, se você chegar a esta resposta algum tempo depois, verifique se ela pode ter sido corrigida. O
env comando usado aqui e aqui eu não acho que esteja no Windows, e é por isso que você está tendo que fazer as coisas PGUSER e PGPASSWORD. No entanto, o motivo do env é que pg_dump precisa de variáveis de ambiente diferentes de pg_restore . Eu tentei consertar isso uma vez, usando popen para configurar os comandos de forma independente e, em seguida, conecte-os em vez de usar um pipe. No entanto, não consegui fazê-lo funcionar e tive que parar.
Eu ficaria muito feliz em revisar qualquer patch que vá até o fim e corrigir esse problema, apenas @ me mencione em um pull request para o projeto heroku/heroku.
Desculpe por não conseguir resolver este problema :(
Em vez disso, e até que isso seja corrigido, você pode usar o
pg_dump e pg_restore comandos separadamente, diretamente. É mais complicado como um processo de 2 etapas e ter que procurar as credenciais remotas, mas faria o trabalho. A fonte vinculada no gen_pg_*_command métodos mostram como usar pg_dump e pg_restore .