الفرق بين المراجعتين ل"Python/Connection/backup"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>Connection.backup()‎</code> في بايثون}}</noinclude> ينشئ هذا التابع نسخة احتياطية من...')
 
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:التابع <code>Connection.backup()‎</code> في بايثون}}</noinclude>
 
<noinclude>{{DISPLAYTITLE:التابع <code>Connection.backup()‎</code> في بايثون}}</noinclude>
  
ينشئ هذا التابع نسخة احتياطية من قاعدة بيانات SQLite حتى أثناء الوصول إليها من قبل مستخدمين آخرين أو بالتزامن مع الاتصال الحالي.
+
ينشئ هذا التابع نسخة احتياطية من قاعدة بيانات SQLite. يمكن إنشاء النسخة الاحتياطية اثناء استخدام قاعدة البيانات من قبل مستخدمين آخرين أو بالتزامن مع الاتصال الحالي.
  
 
يمكن استخدام هذا التابع مع قواعد بيانات SQLite ذات الإصدار 3.6.11 وأعلى.
 
يمكن استخدام هذا التابع مع قواعد بيانات SQLite ذات الإصدار 3.6.11 وأعلى.
سطر 13: سطر 13:
 
backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
 
backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== المعاملات ==
 
== المعاملات ==
  
 
=== <code>target</code> ===
 
=== <code>target</code> ===
تحفظ النسخة الاحتياطية في المعامل الإلزامي target، والذي يجب أن يكون نسخة كائن اتصال أخرى.
+
تحفظ النسخة الاحتياطية في المعامل الإلزامي <code>target</code>، والذي يجب أن يكون نسخة كائن اتصال أخرى.
  
 
=== <code>pages</code> ===
 
=== <code>pages</code> ===
تُنسخ قاعدة البيانات بأكملها في خطوة واحدة وعلى نحو افتراضي، أو عندما يأخذ المعامل pages القيمة 0 أو أي قيمة سالبة. أما لو أخذ المعامل قيمًا موجبة فإنّ التابع يقسم عملية النسخ إلى عدة صفحات بحسب العدد المحدد في المعامل pages.
+
تُنسخ قاعدة البيانات بأكملها في خطوة واحدة وعلى نحو افتراضي، أو عندما يأخذ المعامل <code>pages</code> القيمة <code>0</code> أو أي قيمة سالبة. أما لو أخذ المعامل قيمًا موجبة فإنّ التابع يقسم عملية النسخ إلى عدة صفحات بحسب العدد المحدد في المعامل <code>pages</code>.
  
 
=== <code>progress</code> ===
 
=== <code>progress</code> ===
  
معامل اختياري، يأخذ القيمة None أو كائنًا قابلًا للاستدعاء callable والذي سينفّذ عند كل دورة من دورات عملية نسخ قاعدة البيانات، ويأخذ هذا الكائن ثلاثة وسائط هي status وهي حالة الدورة الأخيرة، remaining وهو عدد الصفحات المتبقية للنسخ، وtotal وهو العدد الكلي للصفحات.
+
معامل اختياري، يأخذ القيمة <code>None</code> أو كائنًا قابلًا للاستدعاء <code>callable</code> والذي سينفّذ عند كل دورة من دورات عملية نسخ قاعدة البيانات، ويأخذ هذا الكائن ثلاثة وسائط هي <code>status</code> وهي حالة الدورة الأخيرة، و <code>remaining</code> وهو عدد الصفحات المتبقية للنسخ، و<code>total</code> وهو العدد الكلي للصفحات.
  
 
=== <code>name</code> ===
 
=== <code>name</code> ===
  
يحدّد هذا المعامل اسم قاعدة البيانات التي سيجري نسخها، ويجب أن يكون سلسلة نصية تتضمّن القيمة "main" وهي القيمة الافتراضية وتشير إلى قاعدة البيانات الرئيسية، أو "temp" للإشارة إلى قاعدة البيانات المؤقتة، أو الاسم الذي يلي الكلمة المفتاحية AS في جملة ATTACH DATABASE لقواعد البيانات الملحقة.
+
يحدّد هذا المعامل اسم قاعدة البيانات التي سيجري نسخها، ويجب أن يكون سلسلة نصية تتضمّن القيمة <code>"main"</code> وهي القيمة الافتراضية وتشير إلى قاعدة البيانات الرئيسية، أو <code>"temp"</code> للإشارة إلى قاعدة البيانات المؤقتة، أو الاسم الذي يلي الكلمة المفتاحية <code>[[SQL/as|AS]]</code> في جملة <code>[[SQL/attach database|ATTACH DATABASE]]</code> لقواعد البيانات الملحقة.
  
 
=== <code>sleep</code> ===
 
=== <code>sleep</code> ===
يحدّد هذا المعامل عدد الثواني التي يجب على التابع أن يتوقف فيها بين محاولتين متتابعتين لإنشاء نسخة احتياطية للصفحات المتبقية، ويمكن تحديد قيمة هذا المعامل باستخدام الأعداد الصحيحة أو الأعداد العشرية ذات الفاصلة العائمة. يأخذ هذا المعامل القيمة الافتراضية 0.250 ثانية.
+
يحدّد هذا المعامل عدد الثواني التي يجب على التابع أن يتوقف فيها بين محاولتين متتابعتين لإنشاء نسخة احتياطية للصفحات المتبقية، ويمكن تحديد قيمة هذا المعامل باستخدام الأعداد الصحيحة أو الأعداد العشرية ذات الفاصلة العائمة. يأخذ هذا المعامل القيمة الافتراضية <code>0.250</code> ثانية.
== القيمة المعادة ==
 
 
 
 
== أمثلة ==
 
== أمثلة ==
  
سطر 39: سطر 36:
  
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
المثال الأول: نسخ قاعدة بيانات إلى قاعدة بيانات أخرى
 
 
 
import sqlite3
 
import sqlite3
  
سطر 61: سطر 56:
 
source.backup(dest)
 
source.backup(dest)
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== انظر أيضًا ==
 
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 21:29، 18 سبتمبر 2018


ينشئ هذا التابع نسخة احتياطية من قاعدة بيانات SQLite. يمكن إنشاء النسخة الاحتياطية اثناء استخدام قاعدة البيانات من قبل مستخدمين آخرين أو بالتزامن مع الاتصال الحالي.

يمكن استخدام هذا التابع مع قواعد بيانات SQLite ذات الإصدار 3.6.11 وأعلى.

ملاحظة: هذا التابع جديد في الإصدار 3.7 من اللغة.


البنية العامة

backup(target, *, pages=0, progress=None, name="main", sleep=0.250)

المعاملات

target

تحفظ النسخة الاحتياطية في المعامل الإلزامي target، والذي يجب أن يكون نسخة كائن اتصال أخرى.

pages

تُنسخ قاعدة البيانات بأكملها في خطوة واحدة وعلى نحو افتراضي، أو عندما يأخذ المعامل pages القيمة 0 أو أي قيمة سالبة. أما لو أخذ المعامل قيمًا موجبة فإنّ التابع يقسم عملية النسخ إلى عدة صفحات بحسب العدد المحدد في المعامل pages.

progress

معامل اختياري، يأخذ القيمة None أو كائنًا قابلًا للاستدعاء callable والذي سينفّذ عند كل دورة من دورات عملية نسخ قاعدة البيانات، ويأخذ هذا الكائن ثلاثة وسائط هي status وهي حالة الدورة الأخيرة، و remaining وهو عدد الصفحات المتبقية للنسخ، وtotal وهو العدد الكلي للصفحات.

name

يحدّد هذا المعامل اسم قاعدة البيانات التي سيجري نسخها، ويجب أن يكون سلسلة نصية تتضمّن القيمة "main" وهي القيمة الافتراضية وتشير إلى قاعدة البيانات الرئيسية، أو "temp" للإشارة إلى قاعدة البيانات المؤقتة، أو الاسم الذي يلي الكلمة المفتاحية AS في جملة ATTACH DATABASE لقواعد البيانات الملحقة.

sleep

يحدّد هذا المعامل عدد الثواني التي يجب على التابع أن يتوقف فيها بين محاولتين متتابعتين لإنشاء نسخة احتياطية للصفحات المتبقية، ويمكن تحديد قيمة هذا المعامل باستخدام الأعداد الصحيحة أو الأعداد العشرية ذات الفاصلة العائمة. يأخذ هذا المعامل القيمة الافتراضية 0.250 ثانية.

أمثلة

المثال الأول: نسخ قاعدة بيانات إلى قاعدة بيانات أخرى

import sqlite3

def progress(status, remaining, total):
    print(f'Copied {total-remaining} of {total} pages...')

con = sqlite3.connect('existing_db.db')
with sqlite3.connect('backup.db') as bck:
    con.backup(bck, pages=1, progress=progress)

المثال الثاني: نسخ قاعدة بيانات إلى قاعدة بيانات أخرى مؤقتة:

import sqlite3

source = sqlite3.connect('existing_db.db')
dest = sqlite3.connect(':memory:')
source.backup(dest)

مصادر

صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.