Tôi cần khôi phục bảng lớn (250mb) trong cơ sở dữ liệu PostgreSQL trong công cụ điều khiển. Làm thế nào tôi có thể làm điều này bằng cách sử dụng ps_dump hoặc psql?Cách khôi phục bảng PostgreSQL từ * .sql bằng pg_dump hoặc psql?
Trả lời
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
.
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.
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
Đâ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! –
psql -U postgres -d doctor_dev < /home/ravi/mydevelopment
Đâ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. –
Lệnh này sẽ khôi phục bản sao lưu của postgres –
bạn có thể nhận được sự giúp đỡ cho tất cả các lệnh với \ h trong vỏ psql – Kungi