restore point در sqlite - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۳۵۶ نفر آنلاین
۱۲۲ عضو و ۲۳۴ مهمان در سایت حاضرند

restore point در sqlite

0 امتیاز
سلام.

دنبال فیچری میگردم که بشه بک restore point مشخص کرد و بعد از اون کاربر بیاد کلی insert و delete کنه و بعد پشیمان شه بشه برگردوند به همون نقطه که restore point گرفتیم آیا راهی وجود داره؟
سوال شده فروردین 2, 1400  بوسیله ی zirak (امتیاز 473)   3 28 52

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

خیر، SQLite ویژگی داخلی برای ایجاد نقاط بازیابی ندارد. با این حال، می‌توانید عملکرد مشابهی را با ایجاد یک نسخه پشتیبان از پایگاه داده در یک زمان خاص و سپس در صورت نیاز، بازیابی آن پشتیبان اجرا کنید. برای این کار می توانید از توابع sqlite3_backup_init، sqlite3_backup_step و sqlite3_backup_finish استفاده کنید. به عنوان مثال، می توانید یک نسخه پشتیبان از پایگاه داده خود به صورت زیر ایجاد کنید:

import sqlite3

# Connect to the original database
conn = sqlite3.connect("original.db")

# Create a backup of the original database
backup = sqlite3.connect("backup.db")
backup_conn = backup.cursor()
original_conn = conn.cursor()

backup_init = sqlite3.backup_init(backup_conn, "main", original_conn, "main")

# Copy all data from the original database to the backup database
while True:
    ret = sqlite3.backup_step(backup_init, -1)
    if ret == 0:
        break

# Finish the backup process
sqlite3.backup_finish(backup_init)

# Close the connections
conn.close()
backup.close()

برای بازگرداندن پایگاه داده به یک نقطه خاص، می توانید به سادگی پایگاه داده اصلی را با پایگاه داده پشتیبان بازنویسی کنید.

پاسخ داده شده بهمن 14, 1401 بوسیله ی عباس همت خواه (امتیاز 436)   2 8 13
انتخاب شد بهمن 20, 1401 بوسیله ی zirak
...