Napsal jsem pg:pull
a pg:push
příkazy.
pg:pull
a pg:push
oba používají pg_dump
příkaz a potrubí, které přímo do pg_restore
(zdrojový kód). Bohužel jsou problémy s pg:push,pull
na windows v době této odpovědi, září 2014. Tyto problémy nejsou nepřekonatelné, takže pokud se k této odpovědi dostanete někdy později, zkontrolujte, zda to nebylo opraveno.
env
Příkaz použitý zde a zde, nemyslím si, že je na Windows, a proto musíte dělat věci PGUSER a PGPASSWORD. Nicméně důvod pro env
je to pg_dump
potřebuje jiné proměnné prostředí než pg_restore
.
Jednou jsem to vyřešil tak, že jsem pomocí popen nastavil příkazy nezávisle a pak je spojil dohromady namísto použití potrubí. Nicméně se mi to nepodařilo úplně zprovoznit a musel jsem to zastavit.
Byl bych velmi rád, kdybychom zkontrolovali všechny záplaty, které jdou až do konce, a opravím tento problém, stačí mě @ zmínit v žádosti o stažení do projektu heroku/heroku.
Omlouvám se, že se mi nepodařilo tento problém vyřešit :(
Místo toho, a dokud to nebude opraveno, můžete použít pg_dump
a pg_restore
příkazy samostatně, přímo. Je to těžkopádnější jako dvoukrokový proces a nutnost vyhledávat vzdálené přihlašovací údaje, ale práci by to zvládlo. Propojený zdroj v gen_pg_*_command
metody ukazují, jak používat pg_dump
a pg_restore
.