Написах pg:pull
и pg:push
команди.
pg:pull
и pg:push
и двете използват pg_dump
команда и препратете директно към pg_restore
(програмен код). За съжаление има проблеми с pg:push,pull
на Windows към момента на този отговор, септември 2014 г. Тези проблеми не са непреодолими, така че ако стигнете до този отговор по-късно, моля, проверете дали може да е бил коригиран.
env
командата, използвана тук и тук, не мисля, че е на Windows, поради което трябва да правите нещата PGUSER и PGPASSWORD. Въпреки това причината за env
това е pg_dump
се нуждае от различни променливи на средата от pg_restore
.
Опитах да го поправя веднъж, като използвах popen, за да настроя командите независимо, след което ги свързвам заедно, вместо да използвам тръба. Въпреки това не можах да го накарам да работи и трябваше да спра.
Ще се радвам да прегледам всички корекции, които стигат докрай и да поправя този проблем, просто ме @ споменете в заявка за изтегляне към проекта heroku/heroku.
Съжалявам, че не успях да поправя този проблем :(
Вместо това и докато това не бъде коригирано, можете да използвате pg_dump
и pg_restore
команди отделно, директно. Това е по-тромаво като процес от 2 стъпки и трябва да се търсят отдалечените идентификационни данни, но ще свърши работата. Свързаният източник в gen_pg_*_command
методи показват как да използвате pg_dump
и pg_restore
.