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

This page is a translated version of the page Manual:Pywikibot/MySQL and the translation is 68% complete.

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

الإعداد

باي ويكي بوت

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

$ pip install pymysql

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

المتغير قيمة
locally remotely Toolforge
db_hostname_format localhost IP address or host {0}.analytics.db.svc.wikimedia.cloud[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 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} 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'. سيدفعك للاستعلام إن لم يكن أي استعلام محدد. ينبغي أن يرجع الاستعلام بعمودين، نطاق الصفحة وأزواج عنوان الصفحة من جدول ما. The query should return two columns, page namespace and page title pairs from some table, e.g.:

$ 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@.