دليل:باي ويكي بوت/ماي إس كيو إل

This page is a translated version of the page Manual:Pywikibot/MySQL and the translation is 64% complete.
Outdated translations are marked like this.
Other languages:
English • ‎العربية • ‎中文 • ‎日本語

يتضمن باي ويكي بوت دعمًا بسيطًا لاستعلامات إس كيو إل على قواعد البيانات الشبيهة بماي إس كيو إل ونسختها.


الإعداد

باي ويكي بوت

لجعل باي ويكي بوت يعمل مع قاعدة بيانات شبيهة بإس كيو إل أو شبيهتها، تأكد أن مكتبة pymysql مثبتة لديك. من المحتمل أنك ثبتها بالفعل عند تثبيت باي ويكي بوت. إن كان غير ذلك قم بتشغيل:

$ pip install pymysql

ثانيًا ينبغي عليك تحديث قسم DATABASE SETTINGS في ملف user-config.py:

الوسيط القيمة
محليًا عن بعد تولفورج
$hostname $localhost عنوان آي بي أو المضيف $forge[1]
$port مطابق لمنفذ الخادم في ملف $my_cnf (الافتراضي: $3306)
$name_format مطابق لاسم قاعدة البيانات (الافتراضي: $brackets[1]) $forgedb[1]
$connect_file مسار ملف $my_cnf (الافتراضي: $abspath أو $locpath) $forgepath
$username الشهادات للاتصال بقاعدة البيانات، إن لم يكن $connect_file موجودًا غير مستخدم
$password
  1. 1.0 1.1 1.2 $brackets أو $xywiki هنا تشير إلى قيمة $dbname في $family الحالية.
Parameter Value
locally remotely Toolforge
db_hostname localhost IP address or host xywiki.analytics.db.svc.eqiad.wmflabs[1]
db_port identical to the server port in my.cnf file (default: 3306)
db_name_format identical to database name (default: {0}[1]) {0}_p[1]
db_connect_file path to the /etc/mysql/my.cnf file (default: /etc/mysql/my.cnf or ~/.my.cnf) ~/replica.my.cnf
db_username the credentials to connect to the database, if no db_connect_file provided Do not use
db_password
  1. 1.0 1.1 1.2 {0} or xywiki here stands for dbName value in current pywikibot.Family.

قاعدة البيانات

قاعدة البيانات أيضًا لا بد أن تكون جاهزة وتحتوي على ضبط وهيكل مقابلين.

على تولفورج ينبغي أن يكون كل شيء يعمل بالشهادات المحددة في replica.my.cnf الخاص بالأداة، انظر wikitech:Help:Toolforge/Database.

من المهملات

إن كنت تريد تشغيل نموذج محلي (مثل نسخة محملة من مهملات ويكيميديا)، اتبع الخطوات التالية:

لمهملات ويكيميديا أولاً قم بتحميل مهملات إس كيو إل المختارة من: https://dumps.wikimedia.org/backup-index.html.

ثانيًا قم بتثبيت وإعداد mariadb أو أي قاعدة بيانات شبيهة بماي إس كيو إل تفضلها على آلتك المحلية. اتبع دليل توزيع نظام التشغيل الخاص بك (مثل https://wiki.archlinux.org/index.php/MySQL).

بمجرد الجاهزية، قم ببدء واجهة طرفية/سطور الأوامر لماي إس كيو إل:

$ mysql -u yourusename -p

وقم بإنشاء قاعدة بيانات جديدة باستخدام اسم قاعدة البيانات المختار مسبقًا:

> create database yourdbname;

في حالة مهملات ويكيميديا أخيرًا لديك كل شيء جاهز للخطوة الأخيرة: استيراد جدول مهملات إس كيو إل المحمل إلى قاعدة بياناتك المحلية المعدة:

> quit
$ mysql -u yourusername yourdbname < /path/to/sql/dump/file/xywiki-20180601-sometable.sql

أو يمكنك تعريف قاعدة البيانات الخاصة بك التي تحتوي نطاق الصفحات وعناوين الصفحات وبعض الصفوف الإضافية من اختيارك:

> create table yourtable (page datatype, namespace datatype, ...)
> set yourtable.page = somepage
> set yourtable.namespace = somens
> quit

الاستخدام

الطرفية أو سطور الأوامر

إن كان النص البرمجي المرغوب يدعم pagegenerators.py ، يمكنك تشغيل نص البرمجي باستخدام مولد -mysqlquery:'query'. سيدفعك للاستعلام إن لم يكن أي استعلام محدد. ينبغي أن يرجع الاستعلام بعمودين، نطاق الصفحة وأزواج عنوان الصفحة من جدول ما، مثل:

$ python pwb.py some_script -mysqlquery:'select page_namespace, page_title from page where ...;'

داخل نصك البرمجي

إن كان نصك البرمجي لا يدعم أي مولد صفحات، يمكنك استيراد MySQLPageGenerator من pagegenerators.py:

from pywikibot import pagegenerators

Bot.__init__(generator=pagegenerators.MySQLPageGenerator('select page_namespace, page_title from page where ...', site=self.site))

لكن يمكنك الحصول أيضًا على معلومات أخرى من قاعدة البيانات باستخدام مكتبة pywikibot.data.mysql:

from pywikibot.data import mysql

some_value = mysql.mysql_query('select page_id from page where ...')

انظر أيضا

لو كنت بحاجة لمساعدة في إعداد بوت Pywikibot الخاص بك، يرجى زيارة قناة #pywikibot على آي آر سي تواصل أو القائمة البريدية pywikibot@.