شكراً على البرامج النصية!
ومع ذلك، أشعر أن الدليل خام وغير واضح. اضطررت إلى الرجوع إلى، على سبيل المثال، دليل ترحيل XenForo لفهم ما تقترحه هنا بالفعل. دعني أضف بعض الخطوات المفقودة:
- تشغيل Discourse
- إنشاء mysqldump من Phorum الأصلي - كل شيء واضح، كل شيء جيد.
- نسخ تفريغ قاعدة البيانات إلى مجلد Discourse
docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz(بافتراضappكاسم حاوية قياسي)
وهنا الأجزاء المفقودة: - الدخول فعليًا إلى حاوية Docker الخاصة بـ Discourse وتثبيت MySQL هناك:
docker exec -it app bash apt-get update && apt-get upgrade
# pv للراحة فقط لعرض التقدم، lsb-release مطلوب لشيء ما apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev service mariadb start
لاحظ أن تثبيت MySQL أكثر تعقيدًا بعض الشيء، ولكن Mariadb يجب أن يعمل بشكل جيد.
ثم قم بإنشاء قاعدة بيانات: mysql → CREATE database phorum.
ثم املأها من النسخ الاحتياطي: pv phorum_db.sql.gz | gunzip | mysql phorum (لا حاجة لـ gunzip إذا كان التفريغ الخاص بك هو sql عادي)
أضف دعم MySql إلى Ruby:
cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment
تعديل البيانات في البرنامج النصي للترحيل (بيانات اعتماد قاعدة البيانات، البادئة، الروابط الدائمة):
nano /var/www/discourse/script/import_scripts/phorum.rb
ثم العودة إلى دليل المنشور الأصلي، كل شيء جيد هناك:
تشغيل المستورد باستخدام نسخة Discourse نظيفة:
git config --global --add safe.directory /var/www/discourse bundle exec ruby script/import_scripts/phorum.rb
إذا لم تكن قاعدة بيانات Discourse نظيفة حقًا، فمن الأفضل تنظيفها باستخدام bundle exec rake db:drop db:create db:migrate مسبقًا.
إذا فشل مع “PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)”:
- إذا حصلت على الخطأ
'Peer authentication failed for user "discourse"':- قم بتحرير الملف
/etc/postgresql/13/main/pg_hba.conf- قم بتغيير كل ‘peer’ إلى ‘trust’ واحفظ الملف
- أعد تحميل خادم postgres:
/etc/init.d/postgresql reload(أو ربماpsql -U postgres -c "SELECT pg_reload_conf();", ولكن هذا كان يفشل معي أحيانًا)
أولاً، يقوم بتشغيل ترحيلات المستخدمين التي قد تكون بطيئة نسبيًا (~ 1.2 ألف مستخدم/دقيقة وفقًا لمخرجات البرنامج النصي. كان لدي 100 ألف مستخدم، لذا…). ثم يقوم بإنشاء فئات ويبدأ في ترحيل الرسائل والمواضيع (نفس السرعة، ~ 1.2 ألف/دقيقة)، ولكن في هذه المرحلة يمكنك بالفعل الوصول إلى موقع الويب ورؤية كيف يبدو.
يبدو أسهل بكثير مما كنت أتوقعه لمحرك قديم مثل Phorum. يبدو أنه لا يوجد ترحيل للرسائل الخاصة (PM)، ولكن لا ينبغي أن يكون ذلك عائقًا بالنسبة لي على الأقل.
شكراً مرة أخرى على البرنامج النصي والجهود!