How to completely uninstall / remove a plugin

I only rebuild a few times per year. I am currently running into an issue with a plugin I do not want.

When I include the plugin repository in my app.yml file I can bootstrap but run into blank screens with the following errors:

When I comment out the plugin repository in app.yml I fail to bootstrap.

So my question is, how can I fully remove the plugin(s) and all of their remnants from my install as if it were never there in the first place?

Can you share the error in bootstrap when doing a rebuild without the plugin?

Here is the error when I try to bootstrap without the plugin.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #     <Process::Status: pid 22379 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --   deployment --verbose --without test --without development'", "su discourse -c 'bundle exec rake db:migrate'", "su  discourse -c 'bundle exec rake assets:precompile'"]}`

And then scrolled up I get this:

I, [2017-01-01T23:52:03.038385 #15]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
URGENT: type Failed to initialize site default
rake aborted!
ArgumentError: type

Handy with most things but I don’t know where to start with this because I bootstrap fine with the plugin.

Looks like df-core is the plugin at fault. Isn’t that one of the Discouse PRO plugins? It’s been a while since I looked at the code on those but if memory serves they contained db migrations. Not sure if that’s good or bad at the moment.

Is it possible that by removing the plugin (and thus removing the migrations) it’s throwing an error?

nobody knows how to just remove a plugin??

To remove a plugin, simply remove the - git clone https://github.com/... line from your app.yml file and rebuild your site via ./launcher rebuild app.

هل ستؤدي هذه الطريقة إلى إزالة الإدخالات التي سيقوم بإنشائها الإضافة في قاعدة البيانات، مثل الجداول أو السجلات؟

أم أنه عند إلغاء تثبيت الإضافة، ستُترك مخلفات في قاعدة البيانات؟

لقد اتبعت هذه الطريقة عدة مرات، لكن إضافة Fingerprint لن تُزال حتى مع عدم وجودها في ملف app.yml الخاص بي.

كيف يمكنني حذفها على أي حال؟

هل قمت بإعادة البناء بعد تعديل ملف app.yml؟

هل قمت بمسح ذاكرة التخزين المؤقت المحلية؟

نعم، لقد قمت بعدة عمليات إعادة بناء وتعديلات منذ ذلك الحين. قمت بمسح ذاكرة التخزين المؤقت.

هل قمت بالحفظ بعد تعديل ملف app.yml :man_shrugging:

بالطبع، وإلا فلن يتم تثبيت الإضافات التي قمت بتثبيتها لاحقًا، لكنها تم تثبيتها :grinning_face:

في منتدى الدعم، لا شيء واضح :scream:

بالنسبة لأولئك الذين يديرون Discourse بشكل متقطع، أو للمبتدئين، أو بشكل عام لتوفير الوقت، فإن التحديد الدقيق قدر الإمكان هو الأكثر فائدة.

في هذه الحالة بالتحديد، أين يقع ملف app.yml بالضبط؟ لا أرى ملفًا بهذا الاسم في /var/discourse، لكنني أرى ملفًا باسم app-sparkpost.yml. ربما يكون هذا هو الملف الذي أنشأته قبل حوالي 5 سنوات عند نشر المثيل؛ لا أعرف. هل هذا هو المسار الصحيح؟ وكيف يعرف Discourse أنه يجب قراءة هذا الملف إذا لم يكن هناك ملف app.yml في /var/discourse؟

لا أتوقع العثور على أي ملفات YAML في /var/discourse نفسه. المسار الصحيح هو /var/discourse/containers. أعتقد أن Discourse سيقوم بقراءة جميع الملفات الموجودة في مجلد containers، لكن مهندسًا سيكون أكثر قدرة على الإجابة على هذا السؤال مني. لا أعتقد أن الاسم مهم في الواقع.

أعتقد أنه يمكن العثور على ملف app.yml في المسار /var/discourse/containers/app.yml. ستحتاج إلى تعديل هذا الملف وإزالة أي مراجع للإضافة. يجب أن تتمكن من العثور على شيء مشابه للآتي في الملف:

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-jwt.git
          - git clone https://github.com/zh99998/discourse-cross-origin.git

كل سطر من سطور git clone هناك يشير إلى إضافة مُثبّتة في مثيل Discourse. بعد تعديل الملف، ستحتاج إلى إعادة بناء تطبيق Discourse. من مجلد /var/discourse، يمكنك تشغيل الأمر ./launcher rebuild app لإعادة بناء تطبيق Discourse.