pg_dump
lệnh được thực thi trong activerecord / lib / active_record / railties / databases.rake tại dòng 428
.
`pg_dump -i -s -x -O -f #{Shellwords.escape(filename)} #{search_path} #{Shellwords.escape(config['database'])}`
Hãy thử đặt một điểm ngắt ở đó và xem lệnh thực sự nào đang được chạy.
Tất cả các tùy chọn đó đều hợp lệ cho Pg9.0.x, vì vậy tôi nghi ngờ có điều gì đó buồn cười trong abcs[Rails.env]['schema_search_path']
điều này làm nhầm lẫn phân tích cú pháp tùy chọn của psql. Lưu ý search_path
cấu trúc không trích dẫn --schema
đối số, vì vậy một search_path_part
với một không gian nhúng sẽ phân tích cú pháp dưới dạng tên lược đồ một phần, theo sau là một từ không đứng trước tùy chọn, vì vậy psql sẽ diễn giải nó dưới dạng tên cơ sở dữ liệu, sau đó khiếu nại khi nó chuyển sang tên cơ sở dữ liệu thực sau này.