استخدم سكريبت استيراد يتطلب MySQL

ستحتاج إلى تعديل السكربت لاستيراد البيانات. يقوم سكربت bbpress باستيراد منشورات من نوع محدد فقط (من المرجح أنني لا أتذكر المصطلح الصحيح في ووردبريس). ما نوع منشورات WP التي تريد استيرادها؟ أيها مواضيع وأيها منشورات؟ هل هناك شيء مثل التصنيفات؟ هذه مجرد بعض الأسئلة التي ستحتاج إلى الإجابة عليها عن طريق تعديل السكربت. كيفية القيام بذلك يتجاوز نطاق الدعم الذي من المرجح أن تحصل عليه هنا.

تعديل: تقاعدت عدة مرات واقتربت أكثر… الآن:

في الخطوة 2، عند تنفيذ الأمر mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < /backup/yourbackup.sql، أحصل على الخطأ bash: /backups/yourstratapropertywordpress.sql: No such file or directory رغم أن الملف موجود (على الأقل في /var/backups موجود).

إذا قفزت إلى الأمام وحاولت تنفيذ الأمر su discourse -c "bundle exec ruby script/import_scripts/bbpress.rb" على أي حال، أحصل على النتيجة التالية:

Loading existing groups...
Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...
Traceback (most recent call last):
        5: from script/import_scripts/bbpress.rb:512:in `<main>'
        4: from script/import_scripts/bbpress.rb:512:in `new'
        3: from script/import_scripts/bbpress.rb:21:in `initialize'
        2: from script/import_scripts/bbpress.rb:21:in `new'
        1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect': Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) (Mysql2::Error::ConnectionError)

شكرًا لك! سأقوم بمراجعة قاعدة البيانات والسكربت لأرى ما إذا كان بإمكاني تحقيق أهدافي.

إعجاب واحد (1)

حظًا موفقًا! لقد كتبتُ ما لا يقل عن بضع مستورِدة قبل أن “أتعلّم” روبي. إذا كانت لديك فهم لـ SQL يمكن اكتسابه في دورة جامعية في منتصف الثمانينيات، فمن المرجح أن تتمكن من إنجاز المهمة. إذا قمت بكتابة الاستعلامات بطريقة تتطابق فيها أسماء الحقول في البيانات الناتجة مع ما يتوقعه السكربت، فقد تتمكن من تغيير استعلامات SQL فقط.

@pfaffman سأقدّر مساعدتك حقًا هنا، لقد علقتُ تمامًا.

أنا مشغول جداً في الوقت الحالي، وعلى الأرجح لن يتم حل هذه المشكلة هنا. يرجى إرسال بريد إلكتروني إلى Jay@literatecomputing.com مع ذكر الميزانية، وسأبذل قصارى جهدي لتقديم حل.

يبدو أن خادم MySQL إما غير قيد التشغيل أو غير مثبت بشكل صحيح.

إعجاب واحد (1)

نجح الأمر!

يجب أن يكون نوع المنشور post ويستبدل نوع المنشور topic. لم يتم نقل الوسوم ولا تصنيفات المواضيع. تم استيراد جميع منشوراتي كمستخدم مجهول، لكن هذا بالتأكيد بداية جيدة!

إعجاب واحد (1)

يسعدنا أن نرى تقدمك!

شكراً لهذا الدليل الواضح، لقد كان مفتاحاً لفهمي لعملية الاستيراد بدلاً من مجرد نسخ ولصق الأوامر بشكل أعمى.

ما زلت أحاول معرفة أسرع طريقة لـ استيراد منتدى دروبال كبير جداً، وما زلت أشعر أن الأمور يمكن تحسينها في حالتي لتقليل وقت التوقف عن العمل عندما أقوم بتشغيل الهجرة النهائية للمنتدى الإنتاجي. قد أكون كبيرًا في السن بعض الشيء، لكنني لست مقتنعًا تمامًا بنموذج Docker/الحاويات. أنا متأكد من أنني قرأت في مكان ما أن هناك خطأ في Docker في مرحلة ما كان يسبب أداءً أبطأ بشكل كبير لخوادم MySQL المعبأة في حاويات. في منتدى Docker، أرى هذا التقرير، لكنني لست متأكدًا مما إذا كان لا يزال ذا صلة. أيضًا، قد لا يكون ذا صلة في حالتي لأنني أستخدم Debian بدلاً من Ubuntu على المضيف.

قد يكون خيار آخر هو تثبيت MySQL أو MariaDB على نظام التشغيل المضيف خارج الحاوية؟

ودون الخوض في التفاصيل، ماذا عن تحسين my.cnf ببعض الاقتراحات من MySQLTuner؟ التكوين القياسي لـ Docker الذي يعمل عبر جميع الحالات لا يمكن أن يكون الأمثل مع مثيلات تجمع المخزن المؤقت وأحجام المخزن المؤقت للمفاتيح، والتي تحدث فرقًا كبيرًا في قاعدة بيانات إنتاجية مخصصة.

مرحباً. شكراً لك على هذا الحل. لقد كنت أواجه مشاكل في الجواهر (gems) كما ذكرت في مقالتك، لذا أتطلع حقًا إلى جعل هذا يعمل. هل تعمل هذه الطريقة على ترحيل منتدى Wordpress bbpress (مستضاف على DreamPress) إلى مثيل Discourse (مستضاف على Digital Ocean)؟

أنا أستخدم قطرة (droplet) Ubuntu من Digital Ocean والطرفية/وحدة التحكم عبر الويب. سؤالي الأول هو ما المتوقع حدوثه عند تشغيل /var/discourse/launcher stop app و /var/discourse/launcher rebuild import؟ هل من المفترض أن تغلق الطرفية/وحدة التحكم عبر الويب؟ لقد حاولت القيام بذلك ولكن يبدو أن ملف import.yml لا يتم حفظه. يعود إلى حالته الافتراضية.

أيضًا، هل يمكن لأحد أن يوضح ما إذا كنت بحاجة إلى تشغيل الخطوة الاختيارية 2 في إعدادي؟

شكراً جزيلاً مقدماً.

ملاحظة: أنا منفتح على دفع المال لشخص ما للقيام بذلك، لكن ميزانيتي محدودة بـ 200 دولار.

ربما ترغب في نشر ذلك في قسم Marketplace.

إعجاب واحد (1)