لقد أنشأت ملف هجرة سكربت لاستيراد قاعدة بيانات FluxBB إلى Discourse. الآن سأشرح لك كيفية إجراء عملية الاستيراد في درس تعليمي خطوة بخطوة.
لقد اختبرت ملف هجرة السكربت هذا مع FluxBB v1.5.10 (وهي الإصدار الحالي حاليًا).
ما هي البيانات التي يمكن استيرادها؟
- المستخدمين (بما في ذلك السيرة الذاتية والتوقيعات)
- المجموعات
- التصنيفات
لن يتم استيراد الأذونات، وستكون جميع التصنيفات عامة. يجب تعيين الأذونات الصحيحة يدويًا بعد الاستيراد. - المواضيع (بما في ذلك حالة التثبيت/التثبيت)
- المنشورات
- المستخدمين المعلقين
قبل بدء الهجرة، قم بإعداد بيئة تطوير على جهازك (أو داخل آلة افتراضية). راجع دليل التثبيت لـ OS X أو Ubuntu للتطوير.
يتطلب Discourse Ruby 3.4+. للتحقق من إصدار Ruby الخاص بك، أدخل الأمر أدناه:
ruby -v
MySQL
الآن نحتاج إلى مكتبة mysql2 لـ Ruby للاتصال بقاعدة بيانات FluxBB القديمة. قم بتشغيل الأوامر التالية لتثبيت اعتماد libmysqlclient-dev ومكتبة mysql2.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libmysqlclient-dev
gem install mysql2
(اختياري) استيراد نسخة احتياطية من MySQL إلى localhost
للتثبيت وتثبيت عميل MySQL واستيراد ملف نسخة احتياطية من MySQL (.sql) إلى جهاز التطوير الخاص بك، اتبع التعليمات أدناه:
sudo apt-get install mysql-server mysql-client
قم بإنشاء مستخدم MySQL والصلاحيات والجداول:
mysql -u root -p mysql
mysql> CREATE USER 'fluxbb'@'localhost' IDENTIFIED BY 'fluxbb';
Query OK, 0 rows affected (0.00 sec)
.
mysql> CREATE DATABASE fluxbb;
Query OK, 1 row affected (0.01 sec)
.
mysql> GRANT ALL PRIVILEGES ON fluxbb.* TO 'fluxbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
.
mysql> exit
قم باستيراد ملف نسخة احتياطية من قاعدة بيانات FluxBB:
mysql -u fluxbb -p fluxbb < myfluxbb.sql
BBCode إلى Markdown
يتعامل سكربت الاستيراد تلقائيًا مع تحويل BBCode إلى Markdown. لا توجد مكتبات إضافية مطلوبة لهذا الغرض.
بعد تثبيت mysql2، انتقل إلى مسار تثبيت Discourse وافتح ملف Gemfile للتحرير.
cd ~/discourse
sudo nano Gemfile
الآن قم بإدراج السطر أدناه في نهاية الملف لإضافة مكتبة mysql2 إلى Discourse.
gem 'mysql2'
قبل تشغيل سكربت الاستيراد، الصق الأسطر التالية واحدة تلو الأخرى في shell الخاص بك. (استخدم مفاتيح الأسهم لتعديل القيم)
export FLUXBB_HOST="localhost"
export FLUXBB_DB="fluxbb"
export FLUXBB_USER="root"
export FLUXBB_PW=""
export FLUXBB_PREFIX=""
الآن حان وقت تشغيل سكربت الاستيراد. قم بتشغيل الأمر أدناه لبدء الهجرة.
RAILS_ENV=production bundle exec ruby script/import_scripts/fluxbb.rb
انتظر حتى ينتهي الاستيراد. يمكنك إعادة تشغيله إذا تباطأ إلى حد كبير.
بعد الانتهاء، تهانينا! تم نقل قاعدة بياناتك بنجاح من FluxBB إلى Discourse ![]()
ابدأ مثيل Discourse الخاص بك:
bundle exec rails server
ابدأ Sidekiq ودعه يقوم بعمله:
bundle exec sidekiq -q critical,4 -q default,2 -q low
اعتمادًا على حجم منتداك، قد يستغرق هذا وقتًا طويلاً. يمكنك مراقبة التقدم في http://localhost:3000/sidekiq.
الآن قم بإنشاء نسخة احتياطية من صفحة المسؤول /admin/backups واستوردها في موقع Discourse المباشر الخاص بك.