PG::UndefinedTable: خطأ: العلاقة "pg_range" غير موجودة

أنا أتبع الدليل هنا:

عندما أقوم بتشغيل bundle exec rake db:create فإنه يعطي خطأ ويقول:

[Warning] Discourse recommends developing using Ruby v3.1.3 or above. You are using v2.7.6.
PG::UndefinedTable: ERROR:  relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
Couldn't create 'discourse_development' database. Please check your configuration.
rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'

Caused by:
PG::UndefinedTable: ERROR:  relation "pg_range" does not exist
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

ماذا أفعل؟
أنا أستخدم WSL 2 و Ubuntu 18.04.5، وإصدار PostgreSQL 9.2

هذا قديم جداً.
يجب أن تكون تستخدم الإصدار 13.x حالياً.

حسنًا، سأحاول الترقية.

لست متأكدًا من أنه مصدر مشكلتك، ولكنه بالتأكيد سيكون أكثر توافقًا :slight_smile:

الآن لدي هذا الخطأ:

[تحذير] يوصي Discourse بالتطوير باستخدام Ruby v3.1.3 أو أعلى. أنت تستخدم v2.7.6.
PG::UndefinedTable: خطأ: العلاقة "pg_range" غير موجودة
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
تعذر إنشاء قاعدة بيانات "discourse_development". يرجى التحقق من التكوين الخاص بك.
تم إلغاء rake!
ActiveRecord::StatementInvalid: PG::UndefinedTable: خطأ: العلاقة "pg_range" غير موجودة
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'

سببه:
PG::UndefinedTable: خطأ: العلاقة "pg_range" غير موجودة
LINE 3: LEFT JOIN pg_range as r ON oid = rngtypid
                  ^
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
المهام: TOP => db:create
(انظر التتبع الكامل عن طريق تشغيل المهمة مع --trace)

وفقًا لرابط Stack Overflow هذا، لديك قاعدة بيانات قديمة أو تالفة.

كيف أقوم بإنشاء واحد جديد إذن؟ لم أستخدم PostgreSQL من قبل.

حسنًا ، الآن أحصل على خطأ مختلف:

[تحذير] يوصي Discourse بالتطوير باستخدام Ruby v3.1.3 أو أعلى. أنت تستخدم v2.7.6.
لم نتمكن من العثور على قاعدة البيانات الخاصة بك: postgres. والتي يمكن العثور عليها في ملف تكوين قاعدة البيانات الموجود في config/database.yml.

لحل هذه المشكلة:

- هل قمت بإنشاء قاعدة البيانات لهذا التطبيق ، أو حذفتها؟ قد تحتاج إلى إنشاء قاعدة البيانات الخاصة بك.
- هل تغير اسم قاعدة البيانات؟ تحقق من أن تكوين database.yml الخاص بك يحتوي على اسم قاعدة البيانات الصحيح.

لإنشاء قاعدة البيانات الخاصة بك ، قم بتشغيل:

        bin/rails db:create
لم نتمكن من إنشاء قاعدة البيانات 'discourse_development'. يرجى التحقق من التكوين الخاص بك.
تم إلغاء rake!
ActiveRecord::NoDatabaseError: لم نتمكن من العثور على قاعدة البيانات الخاصة بك: postgres. والتي يمكن العثور عليها في ملف تكوين قاعدة البيانات الموجود في config/database.yml.

لحل هذه المشكلة:

- هل قمت بإنشاء قاعدة البيانات لهذا التطبيق ، أو حذفتها؟ قد تحتاج إلى إنشاء قاعدة البيانات الخاصة بك.
- هل تغير اسم قاعدة البيانات؟ تحقق من أن تكوين database.yml الخاص بك يحتوي على اسم قاعدة البيانات الصحيح.

لإنشاء قاعدة البيانات الخاصة بك ، قم بتشغيل:

        bin/rails db:create
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'

تسببت في:
PG::ConnectionBad: فشل الاتصال بالخادم على المقبس "/var/run/postgresql/.s.PGSQL.5432": لا يوجد مثل هذا الملف أو الدليل
        هل الخادم قيد التشغيل محليًا ويقبل الاتصالات على هذا المقبس؟
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `load'
/home/joecooldoo/.rbenv/versions/2.7.6/bin/bundle:25:in `<main>'
المهام: TOP => db:create
(انظر التتبع الكامل عن طريق تشغيل المهمة مع --trace)

لذلك قررت اتباع هذا الدليل:

أتلقى هذا الخطأ بعد رسالة “ترحيل قاعدة البيانات”:

ترحيل قاعدة البيانات...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:134:in `exec': mkdir: cannot create directory ‘/src/public/plugins/’: Permission denied
/src/lib/discourse.rb:168:in `execute_command'
/src/lib/discourse.rb:134:in `exec'
/src/lib/discourse.rb:30:in `execute_command'
/src/lib/plugin/instance.rb:727:in `activate!'
/src/lib/discourse.rb:337:in `block in activate_plugins!'
/src/lib/discourse.rb:334:in `each'
/src/lib/discourse.rb:334:in `activate_plugins!'
/src/config/application.rb:216:in `block in <class:Application>'
/src/lib/plugin.rb:6:in `initialization_guard'
/src/config/application.rb:216:in `<class:Application>'
/src/config/application.rb:75:in `<module:Discourse>'
/src/config/application.rb:74:in `<main>'
/home/discourse/.bundle/gems/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/home/discourse/.bundle/gems/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/src/Rakefile:7:in `<main>'
(See full trace by running task with --trace)

ما زلت أواجه مشاكل مع هذا، هل هناك أي حلول؟