ActiveRecord::RecordInvalid (Validation failed: Name has already been taken) app/models/group.rb:607:in 'refresh_automatic_group!' app/models/group.rb:666:in 'block in refresh_automatic_groups!' app/m
Failed to handle exception in exception app middleware : ActiveRecord::RecordInvalid : Validation failed: Name has already been taken
في نفس الوقت تقريبًا ، تلقيت أيضًا رسالة تفيد بأن MaxMind لا يعمل بشكل صحيح ، ولست متأكدًا مما إذا كان هذا له علاقة بالمشكلة (لم أجد أي إعدادات ذات صلة في واجهة المسؤول):
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
دسكورس دقيق جدًا بشأن هذه المعرفات، يجب أن يكون الموظفون 2، ويجب أن يكون المسؤولون 1. إذا كان لديك بأي شكل من الأشكال مجموعة مختلفة بهذا الاسم، فقد تكون هناك مشكلة. سأحرص أيضًا على عدم وجود مستخدم يسمى admins.
ألاحظ أنه لا توجد مجموعة staff، فقط Staff - إذا كانت staff دائمًا تحمل المعرف 3، فأعتقد أن هذا يشير إلى أن شخصًا ما أزالها وأنشأ مجموعة جديدة (المعرف 42).
هل يكفي إنشاء staff مرة أخرى أو كيف يمكنني حل هذه المشكلة؟
نعم، لقد نجحت هذه الطريقة! كانت المجموعة موجودة، ولكن قام شخص ما بإعادة تسميتها - نظرًا لأن هذا يكسر الوظائف الأساسية بشكل أساسي، فإنني أتساءل عما إذا كان يجب منع إعادة تسمية المجموعات النظامية في واجهة المستخدم.
للسجلات، في حال انتهى الأمر بشخص ما في موقف مماثل:
docker exec -it app /bin/bash
su - postgres
psql -d discourse
discourse=# update groups set name='staff' where id=3;
\q