مشاكل في تنفيذ سكربتات الاستيراد/الترحيل

لقد قمت بنقل منتدى بنجاح إلى Disourcse باستخدام نص برمجي مخصص من قبل، ولكن الآن عندما أقوم بتنفيذه مرة أخرى، أحصل على خطأ الاستيراد التالي:

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client': We could not find your database: discourse. Which can be found in the database configuration file located at config/database.yml. (ActiveRecord::NoDatabaseError)

To resolve this issue:

- Did you create the database for this app, or delete it? You may need to create your database.
- Has the database name changed? Check your database.yml config has the correct database name.

To create your database, run:

        bin/rails db:create

فشل الاستيراد التالي في النص البرمجي الخاص بي:

require File.expand_path(File.dirname(__FILE__) + \"/base.rb\")

أقوم بتنفيذ النص البرمجي باستخدام:

./launcher enter app
cd /var/www/discourse
bundle exec ruby script/import_scripts/avatar.rb

لا أفهم الخطأ حقًا: يمكنني الوصول إلى قاعدة البيانات عبر sudo -u postgres psql discourse، مما يؤكد أن قاعدة البيانات “discourse” موجودة بالفعل. أيضًا، يعمل الموقع على ما يرام. عندما أفتح rails c يمكنني أيضًا الوصول إلى البيانات.

هل يمكنك إعطائي بعض الإرشادات حول ما هو الخطأ؟

لا يمكن لـ Discourse العثور على قاعدة بياناته. لذا تحتاج إلى إصلاح ذلك. هل كان هذا تثبيتًا قياسيًا أم تثبيتًا للتطوير؟ ألقِ نظرة على الدليل المناسب واجعل Discourse يعمل كخطوة أولى.

تثبيت قياسي، باتباع https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md

الشيء الوحيد الذي فعلته (والذي يمكنني التفكير فيه الآن) منذ أن كان يعمل في المرة الأخيرة هو التراجع إلى النسخ الاحتياطية.

ما يربكني بشأن الخطأ هو أن كل شيء آخر يعمل. الموقع يعمل بشكل جيد للغاية. فشل برنامج الاستيراد فقط.

وهل تقوم بتشغيل البرنامج النصي داخل الحاوية؟

نعم، أستخدم ./launcher enter app ولدي تكوين واحد فقط (app).

أوه. عذرًا. لقد قلت كل ذلك في المنشور الأصلي؛ لم أقرأ جيدًا!

لا أستطيع التفكير في تفسير. ربما إعادة التشغيل؟

لقد قمت بإعادة التشغيل ولم يحل ذلك المشكلة. أواجه الآن نفس المشكلة على جهازي المحلي (docker محلي)… مما يجعلني أعتقد أنني أقوم بتشغيل الأمر بشكل غير صحيح بطريقة ما…

وشكراً لك – أحتفي بسرعة استجاباتك ودعمك!

نعم، لقد فهمت الآن. لقد قمت بتشغيل البرنامج النصي بصفتي root، ولكن ليس بصفتي المستخدم discourse:

./launcher enter app
cd /var/www/discourse
su discourse
bundle exec ruby script/import_scripts/import.rb

شكراً للدعم @pfaffman <3

3 إعجابات

حسنًا. ربما تغير شيء ما، حيث أنني متأكد من أنني لم أكن أقوم بتشغيل نصوص الاستيراد كما اعتدت على استخدام discourse. عمل جيد!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.