Jeg skrev pg:pull
og pg:push
kommandoer.
pg:pull
og pg:push
begge bruger pg_dump
kommando og overfør det direkte til pg_restore
(kildekode). Desværre er der problemer med pg:push,pull
på windows fra tidspunktet for dette svar, september 2014. Disse problemer er ikke uoverstigelige, så hvis du kommer til dette svar på et senere tidspunkt, skal du tjekke, om det måske er blevet rettet.
env
kommandoen, der bruges her og her, tror jeg ikke er på Windows, og det er derfor, du skal lave PGUSER og PGPASSWORD ting. Men årsagen til env
er det pg_dump
har brug for andre miljøvariabler end pg_restore
.
Jeg prøvede at ordne det en gang ved at bruge popen til at opsætte kommandoerne uafhængigt, og derefter koble dem sammen i stedet for at bruge et rør. Jeg kunne dog ikke helt få det til at virke, og måtte stoppe.
Jeg vil meget gerne gennemgå alle patches, der går hele vejen og løse dette problem, bare @ omtale mig på en pull-anmodning til heroku/heroku-projektet.
Beklager, at jeg ikke fik løst dette problem :(
I stedet, og indtil dette er rettet, kan du bruge pg_dump
og pg_restore
kommandoer separat, direkte. Det er mere besværligt som en 2-trins proces, og at skulle slå op på de eksterne legitimationsoplysninger, men det ville få jobbet gjort. Den linkede kilde i gen_pg_*_command
metoder viser, hvordan man bruger pg_dump
og pg_restore
.