2013-04-25 34 views
24

Tôi có một tấn tệp kết xuất postgresql mà tôi cần tìm hiểu thông qua dữ liệu. Tôi có phải cài đặt Postgresql và "phục hồi" mỗi một trong số chúng vào cơ sở dữ liệu mới từng cái một không? Hoặc tôi hy vọng có một khách hàng postgresql có thể đơn giản mở chúng ra và tôi có thể nhìn vào dữ liệu, thậm chí có thể chạy một truy vấn SQL đơn giản?Cách dễ dàng để xem các tệp kết xuất postgresql?

Tệp kết xuất là tất cả từ máy chủ v9.1.9 Postgresql.

Hoặc có thể có một công cụ có thể dễ dàng tạo cơ sở dữ liệu "kết nối" với tệp kết xuất?

CẬP NHẬT: Đây là những không tập tin văn bản. Chúng là nhị phân. Họ đến từ cơ chế backup Heroku, đây là what Heroku says about how they create their backups:

PG sao lưu sử dụng công cụ pg_dump PostgreSQL bản địa để tạo tập tin sao lưu của nó, làm cho nó tầm thường để xuất khẩu sang PostgreSQL cài đặt khác.

+1

cách được các bãi thực hiện? tức là ... bạn có lệnh chính xác được sử dụng để tạo chúng không? – swasheck

+0

Dumps được làm từ cơ chế sao lưu của Heroku –

Trả lời

23

Thử mở tệp bằng trình chỉnh sửa văn bản - định dạng kết xuất mặc định là văn bản thuần.

Nếu bãi chứa không phải là văn bản thuần túy - hãy thử sử dụng lệnh pg_restore -l your_db_dump.file. Nó sẽ liệt kê tất cả các đối tượng trong kết xuất cơ sở dữ liệu (như bảng, chỉ mục ...).

Một cách khác có thể (có thể không hoạt động, chưa thử) là grep thông qua đầu ra của pg_restore your_db_dump.file lệnh. Nếu tôi hiểu chính xác hướng dẫn - đầu ra của pg_restore chỉ là một chuỗi các truy vấn SQL, sẽ xây dựng lại db.

+1

là 'pg_restore' một lệnh được cài đặt khi cài đặt máy chủ Postgresql? Hoặc tôi có thể dễ dàng lấy lệnh đó từ đâu đó không? –

+0

'pg_restore -l' chỉ cung cấp cho bạn các bảng và siêu dữ liệu khác, không phải dữ liệu thực tế. Đề nghị cuối cùng của bạn làm việc hoàn hảo cho tôi, tuy nhiên. –

+8

Điều này làm việc cho tôi: 'pg_restore db.bin> db.sql'. Cảm ơn! – andrewtweber

0

Tệp kết xuất thường là tệp văn bản, nếu không được nén và bạn có thể mở chúng bằng trình chỉnh sửa văn bản. Bên trong bạn sẽ tìm thấy tất cả các truy vấn cho phép xây dựng lại cơ sở dữ liệu ...

+4

Các bãi không phải là tệp văn bản, chúng là số nhị phân –

0

Nếu bạn sử dụng pgAdmin trên Windows, chỉ có thể sao lưu tệp dưới dạng văn bản thuần túy, có một tùy chọn khi bạn sao lưu thay vì pg_dump trong dòng nhắc lệnh.

7

Tôi có vấn đề này giống nhau và tôi đã kết thúc làm điều này:

  1. Cài đặt PostgreSQL và PGAdmin3.
  2. Mở PGAdmin3 và tạo cơ sở dữ liệu.
  3. Nhấp chuột phải vào db và nhấp vào khôi phục.
  4. Bỏ qua loại tệp.
  5. Chọn tệp kết xuất cơ sở dữ liệu từ Heroku.
  6. Nhấp vào Khôi phục.
29

Đây là những gì tôi đang tìm kiếm:

pg_restore db.bin > db.sql 

Cảm ơn @andrewtweber

+1

Đây chính là câu trả lời hay nhất – brunetton

+1

Làm việc một cách hoàn hảo, cảm ơn. – Brandon

+1

Tệp kết xuất có thể lớn. Nếu đúng như vậy, tôi đề nghị bạn thử 'pg_restore db.bin | less', nếu bạn chỉ muốn xem hoặc thực thi 'pg_restore db.bin | psql dbname> log 2> error' nếu bạn muốn khôi phục nó. –

Các vấn đề liên quan