溫馨提示×

sqlite3數據庫怎樣進行數據備份

小樊
155
2024-12-23 10:45:49
欄目: 云計算

要使用SQLite3數據庫進行數據備份,您可以使用sqlite3命令行工具或編寫一個簡單的Python腳本來完成。這里有兩種方法:

方法1:使用sqlite3命令行工具

  1. 打開命令行終端(在Windows上是命令提示符或PowerShell,在macOS和Linux上是終端)。

  2. 使用sqlite3命令連接到源數據庫文件(例如:source_db.sqlite3):

sqlite3 source_db.sqlite3
  1. 在SQLite命令行中,使用.backup命令創建一個新的數據庫文件(例如:backup_db.sqlite3):
.backup backup_db.sqlite3
  1. 輸入.exit退出SQLite命令行工具。

現在,您已經成功地將源數據庫備份到了backup_db.sqlite3文件中。

方法2:使用Python腳本

  1. 首先,確保您已經安裝了Python。

  2. 創建一個名為backup_sqlite3.py的Python腳本文件。

  3. 將以下代碼復制到backup_sqlite3.py文件中:

import sqlite3
import sys
import os

def backup_sqlite3(source_db, target_db):
    conn = sqlite3.connect(source_db)
    cursor = conn.cursor()
    cursor.execute("PRAGMA database_list")
    result = cursor.fetchall()

    if len(result) > 0:
        for item in result:
            if item[1] == 'main':
                main_db = item[0]
                break
    else:
        print("Error: Unable to find the main database.")
        sys.exit(1)

    conn.close()

    backup_conn = sqlite3.connect(target_db)
    backup_cursor = backup_conn.cursor()
    backup_cursor.execute(f"CREATE TABLE IF NOT EXISTS {main_db} AS SELECT * FROM {main_db};")
    backup_conn.commit()
    backup_conn.close()

    print(f"Backup of {source_db} to {target_db} completed successfully.")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python backup_sqlite3.py <source_db> <target_db>")
        sys.exit(1)

    source_db = sys.argv[1]
    target_db = sys.argv[2]

    if not os.path.isfile(source_db):
        print(f"Error: Source database file {source_db} does not exist.")
        sys.exit(1)

    backup_sqlite3(source_db, target_db)
  1. 在命令行終端中,使用Python運行腳本,指定源數據庫文件(例如:source_db.sqlite3)和目標備份數據庫文件(例如:backup_db.sqlite3):
python backup_sqlite3.py source_db.sqlite3 backup_db.sqlite3

現在,您已經成功地將源數據庫備份到了backup_db.sqlite3文件中。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女