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.

Würde diese Methode die Einträge entfernen, die das Plugin in der Datenbank erstellt hat, wie z. B. Tabellen oder Datensätze?

Oder bleibt beim Deinstallieren eines Plugins Müll in der Datenbank zurück?

Ich habe diese Methode mehrfach angewendet, aber das Fingerprint-Plugin lässt sich nicht deinstallieren, obwohl es nicht in meiner app.yml steht.

Wie kann man es trotzdem löschen?

Haben Sie nach der Bearbeitung Ihrer app.yml neu aufgebaut?

Haben Sie Ihren lokalen Cache geleert?

Ja, seitdem habe ich mehrere Neuaufbauten und Änderungen vorgenommen. Ich habe meinen Cache geleert.

Und du hast nach der Änderung deiner app.yml gespeichert? :man_shrugging:

Natürlich, sonst könnten die Plugins, die ich danach installiert habe, nicht installiert werden, aber sie sind es :grinning_face:

In einem Support-Forum ist nichts offensichtlich :scream:

Für diejenigen, die Discourse nur gelegentlich verwalten, für Einsteiger oder generell, um Zeit zu sparen, ist es am hilfreichsten, so präzise wie möglich zu sein.

In diesem speziellen Fall: Wo genau befindet sich die Datei app.yml? Ich sehe keine im Verzeichnis /var/discourse, aber ich sehe eine app-sparkpost.yml. Vielleicht ist das die Datei, die ich vor etwa 5 Jahren erstellt habe, als ich die Instanz bereitgestellt habe; ich bin mir nicht sicher. Ist das der richtige Pfad? Wie weiß Discourse, dass es diese Datei lesen soll, wenn keine app.yml in /var/discourse vorhanden ist?

Ich würde nicht erwarten, dass Sie selbst unter /var/discourse YAML-Dateien finden. Der korrekte Pfad wäre /var/discourse/containers. Ich glaube, Discourse liest alle Dateien im Verzeichnis containers, aber ein Ingenieur wird Ihnen dazu besser Auskunft geben können als ich. Ich denke, der Name ist tatsächlich nicht wichtig.

Ich glaube, dass app.yml unter /var/discourse/containers/app.yml zu finden ist. Sie müssen diese Datei bearbeiten und alle Verweise auf das Plugin entfernen. Im Dateiinhalten sollte sich etwas Ähnliches wie Folgendes befinden:

## 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

Jede der git clone-Zeilen bezieht sich auf ein Plugin, das in der Discourse-Instanz installiert ist. Nach dem Bearbeiten der Datei müssen Sie Ihre Discourse-Anwendung neu aufbauen. Aus dem Ordner /var/discourse können Sie ./launcher rebuild app ausführen, um Ihre Discourse-Anwendung neu zu bauen.