Ho scritto il pg:pull
e pg:push
comandi.
pg:pull
e pg:push
entrambi usano pg_dump
comando e reindirizzarlo direttamente a pg_restore
(codice sorgente). Sfortunatamente, ci sono problemi con pg:push,pull
su Windows a partire dal momento di questa risposta, settembre 2014. Questi problemi non sono insormontabili, quindi se arriverai a questa risposta qualche tempo dopo, controlla se potrebbe essere stato risolto.
L'env
comando usato qui e qui non penso sia su Windows, motivo per cui devi fare le cose PGUSER e PGPASSWORD. Tuttavia il motivo per il env
è quello pg_dump
necessita di variabili di ambiente diverse da pg_restore
.
Ho provato a risolverlo una volta, usando popen per impostare i comandi in modo indipendente, quindi collegandoli insieme invece di usare un tubo. Tuttavia, non sono riuscito a farlo funzionare e ho dovuto smettere.
Sarei molto felice di rivedere tutte le patch che vanno fino in fondo e risolvere questo problema, solo @ menzionami su una richiesta di pull al progetto heroku/heroku.
Ci scusiamo per non aver risolto questo problema :(
Invece, e fino a quando questo non sarà risolto, puoi usare il pg_dump
e pg_restore
comandi separatamente, direttamente. È più ingombrante come processo in 2 fasi e dover cercare le credenziali remote, ma porterebbe a termine il lavoro. La sorgente collegata nel gen_pg_*_command
i metodi mostrano come usare pg_dump
e pg_restore
.