في هذا الدليل، سنتعلم كيفية نقل منتدى PunBB إلى منصة
باستخدام سكربت الاستيراد الرسمي. لنبدأ ![]()
ما الذي يمكن نقله
-
المواضيع والردود ⇒ مواضيع ومنشورات
-
الفئات والمنتديات
- الفئة الجذرية ⇒ الفئة الجذرية
- الفئة الفرعية ⇒ الفئة الفرعية
- المنتدى الجذري ⇒ فئة فرعية
- المنتدى الفرعي ⇒ فئة فرعية
-
المستخدمين
- اسم المستخدم
- الاسم
- البريد الإلكتروني
- الموقع الإلكتروني
- حالة الامتيازات
- الموقع
- تاريخ الانضمام
- حالة الإدارة
- حالة الحظر
خطتنا بسيطة جدًا، كل ما نحتاجه:
-
إعداد بيئة التطوير المحلية (DEV ENV).
-
تصدير قاعدة بيانات الإنتاج.
-
استيراد قاعدة بيانات الإنتاج إلى Discourse.
-
تشغيل سكربت استيراد PunBB.
لنبدأ ![]()
إعداد بيئة التطوير المحلية (DEV ENV)
أولاً، يجب عليك اتباع إحدى الأدلة التالية لتثبيت منصة Discourse. راجع هذا الدليل إذا واجهت أي مشكلة.
قم بتثبيت خادم قاعدة بيانات MySQL؛
ماك أو إس:
$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
تحقق من حالة الخدمة بتشغيل الأمر التالي:
$ brew services list
يجب أن ترى شيئًا مثل:
mysql@5.7 started
وإلا، قم بتشغيل الأمر التالي ثم تحقق مجددًا من الحالة:
$ brew services start mysql@5.7
أوبونتو 18.04:
قم بتشغيل الأوامر التالية لتثبيت خادم MySQL:
$ sudo apt update
$ sudo apt install mysql-server -y
بعد الانتهاء من تثبيت MySQL، تحقق من حالته:
$ systemctl status mysql.service
إذا لم يكن قيد التشغيل، قم بتشغيل الأمر التالي:
$ sudo systemctl start mysql
بالنسبة لـ ويندوز، يمكنك اتباع دليل التثبيت
الآن، بيئة التطوير المحلية جاهزة. سنسميها: خادم Discourse.
تصدير قاعدة بيانات الإنتاج
قم بتصدير/نسخ قاعدة بيانات الإنتاج احتياطيًا (من خادم PunBB الإنتاجي) بتشغيل الأمر التالي:
$ mysqldump -u USER_NAME -p DATABASE_NAME > punbb.sql
- انسخ هذا الملف المصدّر إلى خادم Discourse.
يمكنك استخدام
scpأوrsyncلنسخ قاعدة البيانات.
استيراد قاعدة بيانات الإنتاج إلى Discourse
على خادم Discourse، قم بإنشاء قاعدة بيانات فارغة جديدة. للقيام بذلك، نحتاج إلى استخدام واجهة سطر أوامر MySQL (CLI):
$ mysql -u root
إذا كان لمستخدم قاعدة البيانات كلمة مرور، فيجب عليك تشغيل الأمر التالي ثم كتابة كلمة المرور:
mysql -u root -p
mysql> CREATE DATABASE punbb;
تأكد من نجاح إنشاء قاعدة البيانات بتشغيل الأمر التالي:
mysql> SHOW DATABASES;
يجب أن ترى شيئًا مثل:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| punbb |
+--------------------+
خطوتنا التالية هي استيراد قاعدة بيانات الإنتاج إلى هذه القاعدة الفارغة الجديدة.
$ mysql -u root punbb < punbb.sql
تشغيل سكربت استيراد PunBB
لنقم أولاً بتثبيت تبعيات المستورد. من خادم Discourse:
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
بعد ذلك، يجب عليك إعداد السكربت ليعمل بشكل صحيح. افتح script/import_scripts/punbb.rb في أي محرر نصوص تفضله وقم بالتعديلات. بشكل أساسي، كل ما عليك فعله هو توفير معلومات قاعدة بيانات MySQL:
PUNBB_DB = "DATABASE_NAME"
.
.
.
@client = Mysql2::Client.new(
host: "localhost",
username: "MYSQL_USERNAME",
password: "MYSQL_PASSWORD",
database: PUNBB_DB
)
شغّل المستورد مع نسخة نظيفة من Discourse:
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/punbb.rb
سيتصل المستورد بقاعدة بيانات MySQL وينقل منتدى قاعدة بيانات PunBB إلى قاعدة بيانات Discourse.
بعد انتهاء المستورد، قم بتشغيل خادم Discourse عن طريق الأمر التالي:
$ bundle exec rails server
بعد ذلك، شغّل معالج المهام الخلفية (background jobs processor) لمعالجة البيانات المنقولة:
$ bundle exec sidekiq
يمكنك مراقبة تقدم sidekiq من خلال هذا الرابط:
http://localhost:3000/sidekiq/queues.
بعد ذلك، جهّز خادم Discourse الإنتاجي الخاص بك باتباع هذا الدليل.
قم بنسخ احتياطي لمنصة خادم Discourse المحلي وارفعه إلى خادم Discourse الإنتاجي الخاص بك باتباع هذا الدليل.
إذا كانت لديك أي أسئلة حول العملية، فسأكون سعيدًا بالمساعدة.
نقل سعيد ![]()