أواجه حاليًا مشكلة في دمج حساب مستخدم فاشل لمستخدم نشط جدًا في مستخدم جديد. لم يعد المستخدم لديه حق الوصول إلى حساب المستخدم السابق والبريد الإلكتروني، وبسبب استخدامي لـ Auth0 SSO (الذي ليس لدي حق الوصول إليه)، أحتاج إلى دمج المستخدمين.
هذا يتوقف عن العمل في المتصفح، ويبدو أنني غير قادر على بدء الدمج باستخدام وحدة تحكم التطبيق أيضًا.
سجل الأخطاء، من تشغيل rake users:merge
# rake users:merge['redacted-source-user','redacted-target-user'] --trace
اسم المكون الإضافي هو 'discourse-user-notes'، ولكن اسم دليل المكون الإضافي هو 'discourse-staff-notes'
** استدعاء users:merge (first_time)
** استدعاء environment (first_time)
** تنفيذ environment
** تنفيذ users:merge
rake aborted!
ArgumentError: topic
/var/www/discourse/app/services/post_owner_changer.rb:12:in `block in initialize'
/var/www/discourse/app/services/post_owner_changer.rb:11:in `each'
/var/www/discourse/app/services/post_owner_changer.rb:11:in `initialize'
/var/www/discourse/app/services/user_merger.rb:83:in `new'
/var/www/discourse/app/services/user_merger.rb:83:in `change_post_owner'
/var/www/discourse/app/services/user_merger.rb:71:in `block in move_posts'
/var/www/discourse/app/services/user_merger.rb:69:in `each'
/var/www/discourse/app/services/user_merger.rb:69:in `move_posts'
/var/www/discourse/app/services/user_merger.rb:14:in `merge!'
/var/www/discourse/lib/tasks/users.rake:57:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:279:in `block in execute'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:279:in `each'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:279:in `execute'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:160:in `invoke_task'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `each'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block in top_level'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:125:in `run_with_threads'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:110:in `top_level'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:83:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:80:in `run'
bin/rake:13:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => users:merge
أكره أن أرفع هذا مرة أخرى، لكنه يحدث لمستخدم آخر في مثيلي. سجل الأخطاء أدناه:
سجل الأخطاء عند تشغيل rake users:merge
root@forum-app:/var/www/discourse# rake users:merge[‘NikS’,‘NikS1’] --trace
اسم المكون الإضافي هو ‘discourse-user-notes’، ولكن اسم مجلد المكون الإضافي هو ‘discourse-staff-notes’
** استدعاء users:merge (first_time)
** استدعاء environment (first_time)
** تنفيذ environment
** تنفيذ users:merge
rake aborted!
ArgumentError: topic (ArgumentError)
raise ArgumentError.new(arg) if self.instance_variable_get("@#{arg}").blank?
^^^^^^^^^^^^^^^^^^^^^^
لست متأكدًا مما إذا كان هناك شيء آخر أحتاج إلى القيام به لمستخدمين مثل هؤلاء، المستخدم المصدر هو حساب عمره 7 سنوات به 834 مشاركة، والمستخدم الهدف لديه 162 مشاركة.
عذرًا على التأخير في الرد. قد يكون هذا تخمينًا ولكنه هل تحذير ملاحظات المستخدم في أعلى كل من هذه الأخطاء ذو معنى؟
أعتقد أنني رأيت مشكلة سابقة حيث لم يكن المكون الإضافي لملاحظات المستخدم يحب عدم وجود اسمه المحدث. هل يمكنك تعديله في ملف app.yml الخاص بك، وإعادة البناء، ومعرفة ما إذا كان ذلك سيساعد؟
هذه كانت مشكلة من جانب العميل.
لم أر أبدًا ذلك التحذير من جانب الخادم الذي يشير إلى مشكلة فعلية. إنه مجرد شيء يظهر مع كل أمر rake أو rails c على سطر الأوامر.
اعتقدت ذلك أيضًا، لكنني اعتقدت أنها تستحق المخاطرة فقط في حال. ملاحظات المستخدم + الدمج بدا وكأنه يمكن أن يكون زواجًا غير سعيد إذا كانت هناك أي تعارضات لسبب ما.
هل ستحتاج إلى الانتباه إلى المكونات الإضافية الأخرى التي قد يمتلك المستخدم بيانات لها؟ على سبيل المثال، تم الحل، تصويت الموضوع[1]، استطلاعات الرأي، إلخ.