لقد وضعتها بدون أي فرق.
لست متأكدًا مما إذا كانت هذه أخطاء ناتجة عن لصقها أو إذا كانت هذه هي الطريقة الفعلية في ملف yml الخاص بك، ولكن هذه ستسبب مشاكل. (فواصل الأسطر بالقرب من نهاية بعض التعليقات، مما يؤدي إلى وجود سطر ثانٍ غير معلق)
عناصر القائمة لديك ليست مدرجة بشكل صحيح.
يجب أن يكون ما سبق
new_categories:
- forum_id: general
name: General
أوصي باستخدام https://www.yamllint.com/ للتحقق من صحة ملف التكوين الخاص بك.
شكراً لجميع ردودكم. اكتشفت بسرعة أن تعديل settings.yml خارج حاوية الاستيراد لم يؤثر على ما كان قيد التشغيل. كما اكتشفت مشكلة المسافات البيضاء في ملفات yml، وقمت بتصحيح ملف الإعدادات الخاص بي. على أي حال، تم استيراد منتدى phpBB بنجاح، باستثناء…
كان اسم المستخدم الخاص بي في phpBB هو نفس حساب المسؤول الخاص بي في Discourse. لا يمكنني تسجيل الدخول، وهناك رسالة تفيد بأن:
تم تعطيل جميع رسائل البريد الإلكتروني الصادرة عالميًا بواسطة مسؤول. لن يتم إرسال أي إشعارات بريد إلكتروني من أي نوع.
ونتيجة لذلك، لا يمكنني إرسال بريد إلكتروني لإعادة تعيين كلمة المرور. هل هذا إعداد قاعدة بيانات؟ وإذا كان الأمر كذلك، هل يمكنني تحديث هذا الحقل باستخدام الموارد المحدودة للحاوية؟ أي أفكار أخرى؟
لاحظ أن لدي المكون الإضافي migratepassword مثبتًا، ولكن يبدو أنه لا يعمل (ربما لأن كلمة المرور الخاصة بي كانت أقل من 15 حرفًا)
يمكنك تمكين رسائل البريد الإلكتروني لمسؤولي المستخدمين من وحدة تحكم rails:
./launcher enter import
rails c
> SiteSetting.disable_emails = "non-staff"
يمكنك أيضًا إعادة تعيين كلمة المرور الخاصة بك مباشرة من الحاوية، لا حاجة لاستخدام رسائل البريد الإلكتروني، عن طريق تشغيل:
./launcher enter import
rake admin:create
هل لي أن أقترح بعض التغييرات على هذه الوثائق (والتعليمات البرمجية):
- لم تعد هذه ضرورية لأن إعداد
disable_edit_notificationsلم يعد موجودًا. يقومdisable system edit notificationsبالوظيفة المذكورة وهو ممكّن افتراضيًا.
- لم يعد السطران الخاصان بـ SSL معلقين افتراضيًا في
app.yml، لذا فإن إزالة هذين الرمزين#سيجعل المقتطف أكثر دقة لما يجب أن يبدو عليه.
-
يجب تحديث هذا القالب حتى لا يواجه المستخدمون هذا الخطأ عند الاستيراد.
-
وأيضًا هذا (ما لم أرتكب خطأ في مكان ما، فهذا أيضًا شيء يجب إصلاحه):
أدى تشغيلIMPORT=1 bundle installإلى إرجاع:
[!] حدث خطأ أثناء تحليل `Gemfile`: لا يمكنك تحديد نفس الـ gem مرتين بمتطلبات إصدار مختلفة.
لقد حددت: sqlite3 (~> 1.3, >= 1.3.13) و sqlite3 (>= 0). لا يمكن لـ Bundler المتابعة.
# من /home/root/discourse/Gemfile:249
# -------------------------------------------
# group :generic_import, optional: true do
gem "sqlite3"
# gem "redcarpet"
# -------------------------------------------
بالفعل، تم تحديد sqlite3 بالفعل في الأسطر القليلة أعلاه:
# ملاحظة: في وضع الاستيراد، يمكن أن يختلف إصدار sqlite كثيرًا، لذا نلتزم بإصدار معين
gem "sqlite3", "~> 1.3", ">= 1.3.13"
gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
gem "reverse_markdown"
gem "tiny_tds"
gem "csv"
end
group :generic_import, optional: true do
gem "sqlite3"
gem "redcarpet"
end
لقد استخدمت تثبيتًا تجريبيًا للاستيراد الخاص بي، إذا كان ذلك مهمًا.
يجب ذكر هذه المعلومات في التعليمات أو تحديث القالب. لقد استغرقت هذه العملية ساعات.
ماذا تحتاج أن تقول؟
أدى حذف هذا السطر إلى إمكانية بناء الحاوية بنجاح.
إذًا، لقد أزلتم هذا السطر؟
نعم، كان هذا هو الحل.
“مرحباً، لقد قمت بنقل منتدى phpBB الخاص بي بنجاح إلى Discourse، وسارت الأمور بسلاسة، والمنتدى يعمل بشكل رائع. الآن أدركت أنني لم أقم بتمكين الوضع الثنائي أثناء تنزيل بيانات phpBB عبر FTP، مما يعني أن جميع الصور تالفة. لقد قمت بتشغيل البرنامج النصي مرة أخرى، ولكن الصور لا يتم استبدالها. أي برنامج نصي، ويفضل مع المسار، أحتاج إلى تعديله حتى يتم استبدال الصور والملفات المرفقة التالفة؟”
في تجربتك الثانية، يتخطى Discourse عمليات التحميل لأنها موجودة بالفعل في جدول uploads. يتجنب Discourse الكتابة فوق الملفات المحملة الموجودة إلا إذا تم توجيهه صراحةً.
يمكنك محاولة إضافة مقتطف الكود أدناه في attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) قبل استدعاء @uploader.create_upload سيضمن ذلك حذف أي ملف تم تحميله موجود بنفس اسم الملف أولاً، مما يجبر Discourse على إعادة تحميله.
existing_upload = Upload.find_by(original_filename: filename)
if existing_upload
existing_upload.destroy
puts "Deleted existing upload: #{filename}"
end
upload = @uploader.create_upload(user_id, path, filename)
“شكراً لردك. للأسف، لم يكن للتغيير أي تأثير. يعمل البرنامج النصي في دقيقة واحدة فقط، ولكن المرفقات لا يتم الكتابة فوقها…”
قد تحتاج إلى مسح قاعدة البيانات وتشغيلها مرة أخرى.
كيف أفعل ذلك؟
الخطوة 1: الاتصال بالخادم عبر SSH:
ssh username@server-address
الخطوة 2: الوصول إلى حاوية التطبيق:
./launcher enter import
نصيحة: قم بتشغيل docker ps للعثور على اسم الحاوية. بشكل افتراضي، عادة ما يطلق عليها اسم app.
الخطوة 3: إعادة تعيين قاعدة البيانات:
RAILS_ENV=production rake db:reset
مرحباً كانابين،
لقد قمت بتحديث هذا الجزء في الدليل.
هذا يعتمد. لا يزال معلقًا عند إعداد الحاوية للمضيف المحلي. يفترض الدليل أنه يتم استخدام حاوية منفصلة للاستيراد، والتي لا يمكن الوصول إليها عبر الإنترنت، لذلك لا يلزم الحصول على الشهادات في هذه الحالة.
تم الآن دمج طلب سحب (PR) لهذا في النواة.
نحن نعمل على إصلاح لهذا، ولكنني قمت بتحديث الدليل وأضفت قسم الأسئلة الشائعة حول كيفية حل هذه المشكلة.
عندما يعمل Discourse في دليل فرعي، مثل domain.org/forum، لا تنطبق الروابط الدائمة، لأنها تبدو كـ viewtopic.php?p=XXXX، ولكن يجب أن تكون forum/viewtopic.php?p=XXXX لكي تعمل.
لقد مرت سنوات، ولكني تعثرت في الروابط الدائمة التي لم تعمل قط والتي لا تزال مهيأة في حالتنا. هل هناك طريقة عبر واجهة المستخدم الرسومية/واجهة سطر الأوامر لإضافة بادئة لجميع الروابط الدائمة بعنصر مسار URL، أو هل يمكن لشخص ما إضافة استعلام PostgreSQL للقيام بذلك؟ قد يساعد ذلك الآخرين أيضًا، إذا تمت إضافة هذه المعلومات إلى المنشور الأول.