Tôi đã viết pg:pull
và pg:push
lệnh.
pg:pull
và pg:push
cả hai đều sử dụng pg_dump
lệnh và chuyển trực tiếp đến pg_restore
(mã nguồn). Rất tiếc, có sự cố với pg:push,pull
trên windows tính đến thời điểm trả lời này, tháng 9 năm 2014. Những vấn đề này không phải là không thể vượt qua, vì vậy nếu bạn đến câu trả lời này sau đó, vui lòng kiểm tra xem nó có thể đã được khắc phục hay không.
env
lệnh được sử dụng ở đây và ở đây tôi không nghĩ là trên windows, đó là lý do tại sao bạn phải thực hiện nội dung PGUSER và PGPASSWORD. Tuy nhiên, lý do cho env
đó có phải là pg_dump
không cần các biến môi trường khác với pg_restore
.
Tôi đã cố gắng khắc phục điều đó một lần, bằng cách sử dụng popen để thiết lập các lệnh một cách độc lập, sau đó kết nối chúng lại với nhau thay vì sử dụng một đường ống. Tuy nhiên, tôi không thể làm cho nó hoạt động được và phải dừng lại.
Tôi rất vui khi xem lại mọi bản vá lỗi và khắc phục sự cố này, chỉ cần @ đề cập đến tôi khi có yêu cầu kéo đối với dự án heroku / heroku.
Xin lỗi vì tôi không thể khắc phục được sự cố này :(
Thay vào đó, và cho đến khi điều này được khắc phục, bạn có thể sử dụng pg_dump
và pg_restore
các lệnh riêng biệt, trực tiếp. Nó rườm rà hơn vì là quy trình 2 bước và phải tra cứu thông tin đăng nhập từ xa, nhưng nó sẽ hoàn thành công việc. Nguồn được liên kết trong lệnh gen_pg_*_command
phương pháp hiển thị cách sử dụng pg_dump
và pg_restore
.