فشل ترحيل Flarum إلى Discourse

لقد قمت بإعداد كل شيء وحاولت استيراد flarum_import.rb. لكنه يقول thimira@THIMIRA:~/discourse/script/import_scripts$ bundle exec ruby flarum_import.rb
Traceback (most recent call last):
1: from flarum_import.rb:3:in <main>'

ماذا علي أن أفعل؟ الرجاء المساعدة.

ستحتاج إلى تضمين المزيد من المخرجات ليتمكن أي شخص من التخمين، ولكن (إثبات أنني مخطئ بشأن ذلك)، السطر 3 هو

 require "mysql2"

لذلك يبدو أنك بحاجة إلى إضافة ذلك إلى Gemfile وتشغيل bundle install.

إعجابَين (2)

كيف أفعل ذلك؟ أعني كيف أضيفه إلى Gemfile؟

الرجاء التحقق من الرسائل الخاصة. لقد تركت رسالة هناك.

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

لذا قم فقط بتنفيذ

IMPORT=1 bundle install
IMPORT=1 bundle exec ruby flarum_import.rb

إذا أعطاك bundle install خطأ، فقد تحتاج أيضًا إلى تنفيذ bundle config unset deployment.

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

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

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

حسنًا، هذه ليست تجربتي - وأفشل في فهم كيف يمكن أن يؤثر القيام بذلك بطريقة أو بأخرى على التبعيات؟

@thimiraonline هل نجح الأمر معك؟

أشياء من هذا القبيل:

 حدث خطأ أثناء تثبيت tiny_tds (2.1.5)، ولا يمكن لـ Bundler المتابعة.

وبعد ذلك، إذا قمت بتثبيت tiny_tds، وهو أمر غير بسيط، فستحصل على

 حدث خطأ أثناء تثبيت sqlite3 (1.4.2)، ولا يمكن لـ Bundler المتابعة.

ولكن أعتقد أنه إذا قمت بتضمين

           - "templates/import/mysql-dep.template.yml"
           - "templates/import/mbox.template.yml"
           - "templates/import/mssql-dep.template.yml"

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

لقد جربت ذلك ولكن إعداده يحتوي على بادئة لجدول قاعدة البيانات ولا يحتوي البرنامج النصي على إعداد للبادئة. لقد طلبت منه إعادة تسمية الجداول وسأحاول مرة أخرى.

إعجابَين (2)

. . . ولكن قوالب الاستيراد تضيف الجوهرة (Gem) إلى ملف الجوهرات (Gemfile)، لذلك إذا حاولت استخدام IMPORT=1 فستحصل على


[!] حدث خطأ أثناء تحليل `Gemfile`: لا يمكنك تحديد نفس الجوهرة مرتين بمتطلبات إصدار مختلفة.
لقد حددت: sqlite3 (~> 1.3, >= 1.3.13) و sqlite3 (>= 0). لا يمكن لـ Bundler المتابعة.

# من /var/www/discourse/Gemfile:272
# -------------------------------------------
# gem 'mysql2'
> gem 'sqlite3'
# gem 'tiny_tds'
# -------------------------------------------

لأن ملف الجوهرات (Gemfile) يحدد إصدارًا والقالب لا يحدده.

لذلك بعد محاولة جادة، لم أجد طريقة لجعل IMPORT=1 مفيدًا. أعتقد أنه سيعمل على نسخة تطوير حيث قمت بتثبيت كل هذه التبعيات على نظام التشغيل، أو قمت بإنشاء طريقة يدوية لتثبيت التبعيات في حاوية.

أوه، ولكن استيراد mbox يفعل أكثر بكثير من تثبيت sqlite3، لذلك هذا ليس شيئًا جيدًا للقيام به إلا إذا كنت تريد حقًا استيراد mbox.

ربما سأقدم طلب سحب (PR) لقالب استيراد sqlite3.

إعجابَين (2)

أواجه هذا الخطأ عند محاولة تشغيل البرنامج النصي باستخدام IMPORT=1

1: from /home/user/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:28:in `require' /home/user/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.4/lib/zeitw erk/loader/callbacks.rb:25:in `on_file_autoloaded': expected file /home/user/disco urse/lib/freedom_patches/ip_addr.rb to define constant FreedomPatches::IPAddr, but didn't (Zeitwerk:: NameError)