مشكلة ترحيل SMF2 إلى Discourse

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

حاوية Docker الخاصة بـ MySQL هي الإصدار 8.

وهذا يعني لسبب ما أن مكتبة MariaDB التي يجلبها قالب MySQL لا تعمل.

ما فعلته بشكل مختلف عما ورد في https://meta.discourse.org/t/smf2-to-discourse-the-ultimate-guide/90314:

لم أقم بتضمين ملف قالب MySQL في ملف تكوين حاوية الاستيراد الخاصة بـ Docker.

لقد بنيت حاوية الاستيراد، ثم دخلت إليها باستخدام الأمر ./launcher enter import

ثم:

echo "gem 'mysql2'" >> Gemfile
wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
dpkg -i mysql-apt-config_0.8.17-1_all.deb

يحتوي هذا على موجه تفاعلي ويمكنك اختيار الإعدادات الافتراضية (MySQL 8 مع الأدوات).

ثم قمت بتثبيت مكتبة MySQL 8 العادية واستمريت في البناء:

apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmysqlclient-dev
su discourse -c 'bundle config unset deployment'
su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'

بمجرد الانتهاء من كل ذلك، كان الباقي كما هو، ويعمل الاستيراد الآن.

قد يرغب مطورو Discourse في تعديل نصوص الاستيراد لمراعاة هذا الأمر، على الأقل أصبح هذا متاحاً على المنتدى ليراه الآخرون إذا علقوا كما حدث لي.