استيراد المستخدمين عبر CSV

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

عند محاولة الإضافة عبر واجهة سطر الأوامر (CLI)، أحصل على الأخطاء التالية.

/var/www/discourse# rails runner script/import_scripts/csv_importer.rb /var/www/discourse/tmp/users.csv
جارٍ تحميل المجموعات الموجودة…
جارٍ تحميل المستخدمين الموجودين…
جارٍ تحميل الفئات الموجودة…
جارٍ تحميل المشاركات الموجودة…
جارٍ تحميل المواضيع الموجودة…
الملف غير موجود: /var/www/discourse/tmp/emails.csv
الملف غير موجود: /var/www/discourse/tmp/custom_fields.csv
فشل bundler في تحميل الأمر: script/rails (script/rails)
/var/www/discourse/script/import_scripts/csv_importer.rb:29:in initialize': undefined method headers’ for nil (NoMethodError)

@imported_custom_fields_names = @imported_custom_fields.headers.drop(1)
                                                       ^^^^^^^

أي أفكار حول ما يمكن أن يحدث؟

هذا السكريبت هو سكريبت ترحيل، وهو غير مخصص لتنفيذ مهمة إضافة المستخدمين بشكل منفرد.

هل تريد فقط إنشاء عدد كبير من حسابات المستخدمين الحقيقيين، أم أنها مخصصة للاختبار؟

آها! لقد رأيت “مستورد” (importer)، وليس “ترحيل” (migration)! شكرًا على النصيحة.

أريد استيراد كمية كبيرة من المستخدمين عبر ملف CSV.

الاستيراد والترحيل هنا مترادفان إلى حد كبير.

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

أولاً وقبل كل شيء - عيد ميلاد سعيد.

ليس لدي أي مهارات برمجية تقريباً. افترضت أنه سيكون بسيطاً مثل تشغيل ملف import.rb “موجهاً” إلى ملف users.csv.

الأخطاء التي أخرجها لا معنى لها على الإطلاق بالنسبة لي. نظرت إلى السطر 29 من برنامج الاستيراد وكان يشير إلى الرؤوس (headers)، لذلك افترضت أنه يعني أعمدة ملف csv، فقضيت بعض الوقت في العبث بذلك، دون جدوى.

حسنًا، لم تتقدم كثيرًا لأنه لم يتم فتح ملف csv الخاص بك أبدًا.

إنه أحد تلك الأشياء المحبطة حيث يمكن أن يستغرق الأمر 30 ثانية أو ساعات.

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

في بعض الأحيان يكون هناك حل سهل لـ المشكلة الأصلية[1].

عطّل رسائل البريد الإلكتروني، واستورد المستخدمين، ثم أعد تمكين رسائل البريد الإلكتروني.


  1. انظر مشكلة س-ص ↩︎

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

آها - ولكن المشكلة هنا هي أنني أعتقد أن المستورد قد التقط ملف users.csv.

ليس لدي ولا أريد استيراد ملف emails.csv وما إلى ذلك.

أو هل هذا مستورد متعدد الأجزاء؟ حيث تكون أسماء المستخدمين في ملف csv واحد، والبريد الإلكتروني في ملف csv آخر (emails.csv)

يبدو أنه يعثر على ملف users.csv لأنه لا يظهر خطأ بشأنه.