أريد إضافة أسماء مستخدمين مجمعة (لإنشاء مستخدمين وهميين مبدئيين لإنشاء منشورات).
لذلك كنت أحاول إنشاء ملف rake، وتحميله ثم تشغيله. لكن لم أنجح. ملف rake لا يتم تحميله أحيانًا، وعندما أستخدم طريقة أخرى يتم تحميله ثم يتم طرح خطأ "لا أعرف كيفية إنشاء … " خطأ تم طرحه بواسطة rails c (لا أستطيع حتى تذكر رسالة الخطأ لأنني جربت ألف طريقة مختلفة لساعات لجعلها تعمل دون نجاح)
ما فعلته إنشاء ملف users.rake
cd /var/www/discourse
mkdir -p lib/tasks
touch lib/tasks/users.rake
تحريره باستخدام nano
cd /var/www/discourse/lib/tasks
sudo nano users.rake
ثم لصقت الكود التالي في المحرر وحفظته
namespace :users do
desc "Create users from a list"
task :create, [:usernames, :password, :domain] => :environment do |task, args|
usernames = args[:usernames].split(',')
password = args[:password]
domain = args[:domain]
User.transaction do
usernames.each do |username|
next if User.exists?(username: username)
email = "#{username}@#{domain}"
user = User.new(username: username, email: email, password: password)
unless user.save
puts "Failed to save user #{username}: #{user.errors.full_messages.join(", ")}"
raise ActiveRecord::Rollback
end
end
end
end
end
تم تحميله في rails c وتم تحميله في المهام
rails console
load 'lib/tasks/users.rake'
exit
ثم حاولت إنشاء المستخدمين
./launcher enter app
rake users:create["username1,username2", "password", "domain.com"]
هل هناك أي طريقة أخرى يمكنني تجربتها عبر الطرفية دون استخدام أشياء طرف ثالث.
طريقتك ستقوم فقط بملء الموقع ببعض المستخدمين والبيانات العشوائية، وهو ما لا أريده. ولا أريد موقعًا جاهزًا عبر الإنترنت، يمكنني استضافته محليًا إذا أردت.
هذا لبيئة إنتاجية. سيكون للمستخدمين الوهميين مواضيع ذات معنى بالفعل. الغرض من هذا ليس تقديم موقع فارغ للجمهور.
لذا، تفضل بإعلامي بحل يتعلق بالسؤال الذي ذكرته.
أحتاج فقط إلى إدراج المستخدمين (لدي قائمة أسماء المستخدمين)، في قاعدة البيانات الرئيسية لـ discourse.
لقد قمت بتعديل الكود، ولكن مناقشة الإنتاج في حاوية دوكر، لقد أنشأت ملف rake باستخدام touch وقمت بتحريره في nano، ثم دخلت التطبيق باستخدام ./launcher enter app، ثم دخلت rails وتحققت من rake -T ولم يتم تحميل ملف rake. هذا هو شاغلي الرئيسي. لا يمكنني حتى اختبار الملف في بيئة الإنتاج.
ومع ذلك، على الجهاز المحلي، لا توجد مشكلة، لقد قمت بنسخ ولصق الملف في lib/tasks ويعمل بشكل جيد. هذه الحاوية دوكر وحاوية دوكر هي عذاب عندما تحتاج إلى الوصول إلى الأشياء مباشرة. ولا يمكنني حتى معرفة سبب عدم تحميلها تلقائيًا في قائمة مهام rake.
لذلك، ما زلت عالقًا في بيئة الإنتاج حيث لا يتم تحميل ملف rake تلقائيًا، لذلك لا يمكنني تشغيل الأمر.
لن يدعمك موقعك إذا لم أستخدم دوكر، وإلا لكنت سعيدًا جدًا بإزالة دوكر واستضافة الموقع مباشرة. هذا من شأنه أن يجعل الحياة أسهل بكثير.
المشكلة هي أنه عند تحميل النسخة الاحتياطية المحلية إلى الموقع المباشر، سيتم استبدال جميع المحتويات التي أنشأتها في الموقع المباشر. لدي نسخة محلية، لكن شخصًا ما في هذا المنتدى اقترح عليّ استخدام الموقع المباشر للتطوير. لذلك، أنا الآن أقوم بالتطوير في الموقع المباشر (لم يتم نشره رسميًا بعد على الرغم من ذلك).
وقد وضعت الملف في lib/tasks، والنسخة المحلية تعمل، وليس النسخة المباشرة. سأجرب lib/rake أيضًا.
أعتقد أنه لا ينبغي لك تطوير Rails أو Ember على تثبيت قياسي، ولكني أقوم بانتظام بالاستيراد في حاوية إنتاج. نظرًا لأنه مجرد مهمة rake، فلن تحتاج حتى إلى إعادة تشغيل الخادم لتطبيق التغييرات.
نظرًا لأنه ليس عامًا، فيجب أن يكون آمنًا للتراجع عن نسخة احتياطية إذا حدث خطأ ما. من المحتمل أن يكون هذا هو المكان الذي سأقوم فيه بذلك.
يمكنك عمل نسخة احتياطية من الموقع المباشر واستعادتها إلى موقع التطوير، والقيام بالعمل، ثم عمل نسخة احتياطية/استعادة مرة أخرى إلى الموقع المباشر.