خطأ أثناء استيراد المواضيع من Flarum (استيراد المستخدمين والمجموعات تم بنجاح)

مرحبًا يا أصدقاء، آمل حقًا أن يتمكن أحدكم من مساعدتي في عملية ترحيل من Flarum إلى Discourse أعمل عليها. لقد تخطيتُ بنفسي كمية هائلة من النقص في معرفتي، وحللتُ بعض الأخطاء بناءً على افتراضات يبدو أن أداة الترحيل الحالية تتبناها (مثل بادئات قواعد البيانات). بعد كل ذلك، تمكنت من استيراد الفئات والمستخدمين! :partying_face:

لكنني الآن أواجه مشاكل في استيراد المواضيع الفعلية، وهي بالطبع من أهم الأشياء. :grinning_face_with_smiling_eyes: وللأسف، أجد قليلًا جدًا من المعلومات حول رسالة الخطأ المحددة التي أواجهها. هناك موضوع واحد قديم هنا في Meta لم يتلقَ ردًا، لذا لا فائدة منه. آمل أن أتمكن من تحقيق نتيجة أفضل. :grin:

إليك رسالة الخطأ الكاملة. يبدو أن الجزء السفلي هو النقطة الحاسمة. إن “قيمة المفتاح المكررة” المذكورة تبدو غامضة حقًا، لذا أنا عالق. شكرًا مقدّمًا على أي رؤى يمكنك تقديمها!

حدث خطأ أثناء تحميل ./script/import_scripts/flarum_import.rb.
Failure/Error: return exec_without_profiling(*args, &blk) unless SqlPatches.should_measure?

PG::InFailedSqlTransaction:
  ERROR:  current transaction is aborted, commands ignored until end of transaction block
# ./script/import_scripts/base.rb:243:in `ensure in block in all_records_exist?'
# ./script/import_scripts/base.rb:243:in `block in all_records_exist?'
# ./script/import_scripts/base.rb:224:in `all_records_exist?'
# ./script/import_scripts/flarum_import.rb:122:in `block in import_posts'
# ./script/import_scripts/base.rb:874:in `block in batches'
# ./script/import_scripts/base.rb:873:in `loop'
# ./script/import_scripts/base.rb:873:in `batches'
# ./script/import_scripts/flarum_import.rb:101:in `import_posts'
# ./script/import_scripts/flarum_import.rb:32:in `execute'
# ./script/import_scripts/base.rb:47:in `perform'
# ./script/import_scripts/flarum_import.rb:162:in `<top (required)>'
# ------------------
# --- Caused by: ---
# PG::UniqueViolation:
#   ERROR:  duplicate key value violates unique constraint "import_ids_pkey"
#   DETAIL:  Key (val)=(3) already exists.
#   ./script/import_scripts/base.rb:231:in `block in all_records_exist?'
لم يتم العثور على أمثلة.


انتهى التنفيذ في 0.00004 ثانية (استغرق تحميل الملفات 5.56 ثانية)
0 أمثلة، 0 أخطاء، حدث خطأ واحد خارج نطاق الأمثلة

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

الخيار الآخر هو محاولة إعادة بناء ذلك الفهرس وحذف السجلات المكررة حتى يعمل.

شكرًا لك يا جاي! للأسف، فقدت تثبيت Discourse هذا بسبب، حسنًا، قلة حيلتي (سوء التعامل مع آلة افتراضية). لذا لا أستطيع العودة والتحقق، ولا يمكنني تنفيذ خطوات استكشاف الأخطاء وإصلاحها التي أوصيت بها، وهو ما أشعر بسوء أو غباء تجاهه. لكن الأمر كما هو.

ما يمكنني إخبارك به هو أنني اتبعت تعليمات إعداد Discourse على Ubuntu:

إذن سيكون الأمر هو إصدار PostgreSQL الذي تم تثبيته بهذه الطريقة. وقد حاولت الاستيراد عدة مرات حتى هذه النقطة، دون مسح قاعدة البيانات في الفترات الفاصلة، لذا ربما يكون لهذا علاقة بالمشكلة.

اتبعت طريقة بيئة التطوير على Ubuntu بدلاً من استخدام نهج Docker لأنه عندما جربت ذلك سابقًا (على Digital Ocean)، لم تكن أي من التعليمات التي وجدتُها حول كيفية القيام بـ، حسنًا، أي شيء تعمل، لأنه، على ما يبدو، كان الأمر داخل Docker/حاويات وتطلب نهجًا مختلفًا.

أنا أعمل حاليًا عند حدود فهمي للأسف، لكن بدا الأمر يستحق المحاولة على الأقل أن أفعل ذلك بنفسي. مع هذا النكسة الكبيرة، ومع المعرفة بأن هناك على الأرجح خطوات أكثر لاستكشاف الأخطاء وإصلاحها قادمة، أعتقد أنه من المرجح جدًا أن يكون الوقت قد حان لطلب مساعدة احترافية. لذا سأذهب الآن لمحاولة الحصول على ميزانية لذلك. :grinning_face_with_smiling_eyes:

شكرًا مجددًا لمساعدتك!

ممتاز! لا داعي لمعرفة ما حدث ما لم يتكرر مرة أخرى.