Saya menulis pg:pull
dan pg:push
perintah.
pg:pull
dan pg:push
keduanya menggunakan pg_dump
perintah dan pipa itu langsung ke pg_restore
(Kode sumber). Sayangnya, ada masalah dengan pg:push,pull
di windows pada saat jawaban ini, September 2014. Masalah ini tidak dapat diatasi, jadi jika Anda akan menemukan jawaban ini nanti, silakan periksa untuk melihat apakah itu mungkin telah diperbaiki.
env
perintah yang digunakan di sini dan di sini saya rasa tidak ada di windows, itulah sebabnya Anda harus melakukan hal-hal PGUSER dan PGPASSWORD. Namun alasan untuk env
apakah itu pg_dump
membutuhkan variabel lingkungan yang berbeda dari pg_restore
.
Saya mencoba memperbaikinya sekali, dengan menggunakan popen untuk mengatur perintah secara mandiri, lalu menyambungkannya alih-alih menggunakan pipa. Namun, saya tidak bisa membuatnya bekerja, dan harus berhenti.
Saya akan sangat senang untuk meninjau patch apa pun yang berfungsi sepenuhnya dan memperbaiki masalah ini, cukup dengan @ mention saya di pull request ke proyek heroku/heroku.
Maaf karena saya gagal memperbaiki masalah ini :(
Sebagai gantinya, dan sampai ini diperbaiki, Anda dapat menggunakan pg_dump
dan pg_restore
perintah secara terpisah, secara langsung. Ini lebih rumit sebagai proses 2 langkah, dan harus mencari kredensial jarak jauh, tetapi itu akan menyelesaikan pekerjaan. Sumber tertaut di gen_pg_*_command
metode menunjukkan cara menggunakan pg_dump
dan pg_restore
.