SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Xuất Toàn bộ Cơ sở dữ liệu SQLite sang Tệp SQL

Dòng lệnh SQLite cung cấp một số phương pháp để xuất hoặc sao lưu toàn bộ cơ sở dữ liệu. Một trong số đó liên quan đến .dump lệnh dấu chấm.

.dump lệnh cho phép bạn chuyển đổi toàn bộ cơ sở dữ liệu thành một tệp văn bản ASCII. Nói cách khác, nó kết xuất toàn bộ cơ sở dữ liệu dưới dạng SQL. Tệp văn bản chứa tất cả các câu lệnh SQL cần thiết để tạo bảng, chèn dữ liệu, v.v.

Bạn cũng có thể sử dụng .dump để tạo một tệp nén. Tôi phác thảo cả hai phương pháp này bên dưới.

Xuất dưới dạng SQL

Bạn có thể sử dụng .dump kết hợp với .output hoặc .once để xuất toàn bộ cơ sở dữ liệu sang tệp .sql.

Tệp này sẽ chứa tất cả các câu lệnh SQL cần thiết để xây dựng lại cơ sở dữ liệu (bao gồm tạo tất cả các bảng, chèn tất cả dữ liệu, v.v.).

Đây là một ví dụ:

.once Store.sql
.dump

Trong trường hợp này, tôi đã sử dụng .once yêu cầu. Điều này chỉ đơn giản là chuyển hướng kết quả của lệnh tiếp theo hoặc câu lệnh SQL vào tệp được chỉ định.

Trong trường hợp này, lệnh tiếp theo là .dump lệnh dot, theo mặc định, hiển thị tất cả nội dung cơ sở dữ liệu dưới dạng SQL.

Ngoài ra, bạn có thể sử dụng .output , nhưng điều này sẽ định hướng kết quả của tất cả lệnh tương lai / câu lệnh SQL vào tệp. Điều này có thể gây ra những hậu quả không mong muốn nếu bạn không cẩn thận.

Khôi phục cơ sở dữ liệu

Khi bạn đã tạo tệp sao lưu .sql, bạn có thể tạo lại toàn bộ cơ sở dữ liệu bằng cách chỉ cần đọc tệp đó từ bên trong SQLite.

Ví dụ:bạn có thể kết nối với SQLite trong khi chỉ định tệp cơ sở dữ liệu mới (tệp chưa tồn tại):

sqlite3 Store2.db

Bằng cách chỉ định một tệp cơ sở dữ liệu không tồn tại, SQLite sẽ tạo một cơ sở dữ liệu trống.

Bây giờ bạn đang ở trong SQLite, bạn có thể đọc nội dung của tệp sao lưu:

.read Store.sql

Thats tất cả để có nó. Cơ sở dữ liệu đã được tạo lại từ tệp .sql. Tất cả các bảng đã được tạo và tất cả dữ liệu đã được chèn vào.

Tạo tệp nén

Nếu cơ sở dữ liệu của bạn lớn và chứa nhiều dữ liệu, tốt hơn hết bạn nên tạo một tệp sao lưu nén.

Đây là một ví dụ:

Cửa hàng
sqlite3 Store .dump | gzip -c >Store.dump.gz

Lưu ý rằng điều này được chạy bên ngoài SQLite. Nói cách khác, tôi đã không kết nối với SQLite trước khi chạy lệnh này. Tôi chỉ cần mở một cửa sổ đầu cuối mới và chạy lệnh đó.

Trên thực tế, tôi đã điều hướng đến thư mục sao lưu trước. Nếu bạn không làm điều này, bạn sẽ cần bao gồm đường dẫn trong tệp sao lưu.

Bạn có thể tạo lại cơ sở dữ liệu bằng zcat . zcat tiện ích cho phép bạn xem nội dung của một tệp nén mà không thực sự giải nén nó.

Vì vậy, tệp được tạo trong ví dụ trước đó có thể được tạo lại bằng cách sử dụng zcat tiện ích.

zcat Store.dump.gz | sqlite3 Store2

Điều này có thể hoạt động hoặc có thể không hoạt động tùy thuộc vào hệ thống của bạn. Nếu cách này không hiệu quả, bạn có thể cần sử dụng một tiện ích nén khác.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. android.database.sqlite.SQLiteCantOpenDatabaseException:lỗi không xác định (mã 14):Không thể mở cơ sở dữ liệu

  2. Kích thước cơ sở dữ liệu SQLite tối đa trong ứng dụng Android

  3. Truy vấn SQlite trong Android bằng con trỏ

  4. Cách chính xác để xử lý Bi hướng 1:m trong Green-DAO

  5. Gây ra bởi:android.database.sqlite.SQLiteException:không có bảng như vậy:(mã 1) Android