Bài viết này giải thích cách khôi phục cơ sở dữ liệu SQLite từ bên trong giao diện dòng lệnh SQLite.
Có một số cách để khôi phục cơ sở dữ liệu từ SQLite CLI.
Một cách để làm điều đó là chỉ cần đính kèm một cơ sở dữ liệu mới bằng cách sử dụng tệp sao lưu (hoặc một bản sao của nó). Một cách khác để khôi phục cơ sở dữ liệu là sử dụng .restore
lệnh dot để khôi phục tệp cơ sở dữ liệu vào cơ sở dữ liệu bạn đã chọn trong SQLite CLI.
Lệnh .restore
.restore
lệnh được thiết kế đặc biệt để khôi phục cơ sở dữ liệu từ một tệp. Nó khá đơn giản để sử dụng.
Đây là một ví dụ:
ATTACH DATABASE 'pets2.db' AS Pets2;
.restore Pets2 bak/pets_backup.db
Trong trường hợp này, tôi đã sử dụng ATTACH DATABASE
để tạo tệp cơ sở dữ liệu trống và đính kèm dưới tên Pets2 .
Sau đó, tôi đã sử dụng .restore
lệnh khôi phục tệp sao lưu hiện có vào cơ sở dữ liệu đó.
Trong trường hợp này, tệp sao lưu nằm trong thư mục con có tên bak . Nếu tệp sao lưu của bạn nằm trong một thư mục khác, bạn sẽ cần sử dụng đường dẫn tệp thích hợp.
Đính kèm cơ sở dữ liệu
Một cách khác để khôi phục tệp sao lưu là chỉ cần đính kèm trực tiếp.
Vì vậy, thay vì chạy .restore
trong ví dụ trước, tôi có thể thực hiện đơn giản như sau:
ATTACH DATABASE 'bak/pets_backup.db' AS Pets2;
Tuy nhiên, trước khi thực hiện việc này, bạn nên đảm bảo rằng bạn có một bản sao của tệp sao lưu ở một nơi khác. Có lẽ tốt nhất bạn nên đổi tên tệp mà bạn sẽ đính kèm.
Trong ví dụ này, tốt hơn hết tôi nên lấy một bản sao của bak / Pet_backup.db và đặt bản sao vào thư mục dữ liệu hoặc thư mục hiện tại của tôi, sau đó đổi tên tệp đó thành Pets2.db hoặc bất cứ điều gì phù hợp hơn.
Nếu tôi đã làm điều đó, tôi sẽ đính kèm nó như thế này:
ATTACH DATABASE 'pets2.db' AS Pets2;
Lệnh .open
Bạn cũng có thể sử dụng .open
lệnh đóng cơ sở dữ liệu hiện có và mở tệp bạn muốn khôi phục.
.open pets2.db
Mở tệp sao lưu khi kết nối với SQLite
Và chúng tôi cũng có thể mở tệp đó trực tiếp khi kết nối với SQLite:
sqlite3 Pets2.db