بعد تشغيل sudo -s ثم d/rake db:drop db:create db:migrate، واجهت الخطأ التالي:
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Couldn't drop database 'discourse_development'
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Caused by:
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)
هممم. ربما يمكنك حذف تلك قواعد البيانات وإعادة إنشائها بنفسك ثم ترحيلها باستخدام مهمة rake. أو امنح مستخدم discourse الحقوق لإنشاء وتدمير (أعتقد أن هذا أسهل).
لستُ على دراية تامة بعملية منح مستخدمي discourse الحق في الإنشاء والتدمير للأسف. في الخيار الأول، هل تقصد أن أقوم بحذف جميع هذه قواعد البيانات، ثم تشغيل d/rake db:create db:migrate؟ هل هذا صحيح؟
شكراً لمساعدتك حتى الآن! أريد فقط أن أتراجع خطوة إلى الوراء قبل المضي قدماً في استكشاف أخطاء psql وإصلاحها، هدفي الرئيسي هو فقط تشغيل بيئة تطوير Discourse docker (على الإصدار المستقر) على Ubuntu، والتي تعمل بشكل جيد ومتوقع على Mac. ألا ينبغي أن أكون قادراً على القيام بذلك دون أخطاء الجدول والهجرة هذه؟ عندما أحاول إجراء تثبيت نظيف، أحصل على خطأ الإشارة المرجعية، وبعد حل ذلك، أحصل على خطأ NoMethodError هذا، والآن خطأ InsufficientPrivilege.
في البداية، اعتقدت أن السبب هو أنني كنت على test-passed ثم التبديل إلى الإصدار المستقر تسبب في المشكلة، ولكن حتى في نسخة Ubuntu نظيفة وفارغة، لا يزال خطأ NoMethodError يظهر، هذا بدون أي قواعد بيانات سابقة موجودة، لقد قمت للتو بالخطوة رقم 1 والخطوة رقم 2 هنا:
هل يمكنك تثبيت الإصدار المستقر على Ubuntu بدون أي مشاكل؟
d/bundle exec rake db:drop db:create db:migrate
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Couldn't drop database 'discourse_development'
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Caused by:
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)
لقد حاولت هذا على مثيل فارغ (بدأت من البداية، لا توجد قواعد بيانات أو معلومات موجودة) باستخدام دليل المبتدئين وظهرت نفس النتيجة.
إذًا، ستحتاج إلى إسقاط قاعدة البيانات بطريقة أخرى. يمكنك البحث في جوجل عن أشياء تتعلق بـ postgres (هذا ما أفعله عندما أحتاج إلى القيام بذلك) أو الانتظار حتى ينشر شخص ما يمكنه التذكر هنا. الخيار الآخر هو التأكد من أن مستخدم discourse لديه حقوق إسقاط وإنشاء قواعد البيانات.