نقل منتدى PunBB إلى Discourse

في هذا الدليل، سنتعلم كيفية نقل منتدى PunBB إلى منصة :discourse: باستخدام سكربت الاستيراد الرسمي. لنبدأ :slight_smile:

ما الذي يمكن نقله

  • المواضيع والردود ⇒ مواضيع ومنشورات

  • الفئات والمنتديات

    • الفئة الجذرية ⇒ الفئة الجذرية
    • الفئة الفرعية ⇒ الفئة الفرعية
    • المنتدى الجذري ⇒ فئة فرعية
    • المنتدى الفرعي ⇒ فئة فرعية
  • المستخدمين

    • اسم المستخدم
    • الاسم
    • البريد الإلكتروني
    • الموقع الإلكتروني
    • حالة الامتيازات
    • الموقع
    • تاريخ الانضمام
    • حالة الإدارة
    • حالة الحظر

خطتنا بسيطة جدًا، كل ما نحتاجه:

  • إعداد بيئة التطوير المحلية (DEV ENV).

  • تصدير قاعدة بيانات الإنتاج.

  • استيراد قاعدة بيانات الإنتاج إلى Discourse.

  • تشغيل سكربت استيراد PunBB.

لنبدأ :slightly_smiling_face:

إعداد بيئة التطوير المحلية (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.

:bulb: يمكنك استخدام 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

:bulb: يمكنك مراقبة تقدم sidekiq من خلال هذا الرابط: http://localhost:3000/sidekiq/queues.

بعد ذلك، جهّز خادم Discourse الإنتاجي الخاص بك باتباع هذا الدليل.

قم بنسخ احتياطي لمنصة خادم Discourse المحلي وارفعه إلى خادم Discourse الإنتاجي الخاص بك باتباع هذا الدليل.

إذا كانت لديك أي أسئلة حول العملية، فسأكون سعيدًا بالمساعدة.

نقل سعيد :grinning:

7 إعجابات