2012-02-24 14 views

Trả lời

18

Chỉ cần kết nối với cơ sở dữ liệu với psql và chạy \i /path/to/filename.sql.

8
psql --username yourusername --dbname yourdatabasename -f yourfile.sql 

làm rõ here. Tùy thuộc vào cấu hình, có thể yêu cầu mật khẩu của bạn.

Nếu nó là một cơ sở dữ liệu mới được cài đặt mà không có cơ sở dữ liệu của bạn, hãy sử dụng postgres cho tên cơ sở dữ liệu và cố gắng bỏ qua phần tên người dùng (cài đặt mới thường cấp quyền truy cập đầy đủ cho người dùng hiện tại đã cài đặt nó).

Nếu bạn vẫn không thể đăng nhập, hãy chỉnh sửa tạm thời pg_hba.conf bất cứ nơi nào có thể trong cài đặt của bạn và tạm thời đặt máy chủ cục bộ thành đáng tin cậy. Sau đó, bạn có thể chỉ định postgres cả dưới dạng tên người dùng và làm tên cơ sở dữ liệu.

Đừng quên hoàn nguyên các thay đổi pg_hba.conf khi hoàn tất.

2
psql dbname < /path/to/dump.sql 

Bạn thậm chí có thể sửa đổi bãi của bạn một cách nhanh chóng nếu có yêu cầu:

sed 's/OWNER TO olduser/OWNER TO newuser/g' < /path/to/dump.sql | psql dbname 
+0

Đây là rất hữu ích. Tôi cần một cái gì đó có thể được thực hiện từ một kịch bản. Cảm ơn! –

-1
psql -U postgres -d doctor_dev < /home/ravi/mydevelopment 
+0

Đây không phải là câu trả lời. Mã này chỉ gửi các câu lệnh sql chưa biết từ tệp đến cơ sở dữ liệu postgresql. –

+0

Lệnh này sẽ khôi phục bản sao lưu của postgres –