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.

Would that method remove the entries the plugin would have created in the database, like tables or records?

Or when you uninstall a plugin garbage in the database would be left after it?

I did this method multiple times, the Fingerprint plugin will not uninstall even though it is not in my app.yml.

How to delete this anyway?

Did you rebuild after you edited your app.yml?

Did you clear you local cache?

Yes, I’ve had several rebuilds and changes since. I cleared my cache.

And you saved after you changed your app.yml :man_shrugging:

Ofcourse, otherwise plugins I installed after would not install, but they are :grinning:

In a support forum nothing is obvious :scream:

Discourse をたまにしか管理しない方、初心者の方、あるいは時間を節約したい方全般にとって、できるだけ具体的に説明することが最も役立ちます。

今回のケースでは、app.yml ファイルは具体的にどこにありますか?/var/discourse にはそれが見当たりませんが、app-sparkpost.yml はあります。これはおそらく 5 年ほど前にインスタンスをデプロイした際に私が作成したファイルかもしれません。確信はありませんが。これが正しいパスでしょうか?/var/discourseapp.yml が存在しない場合、Discourse はどのようにしてこのファイルを読み取ることを知っているのでしょうか?

/var/discourse 自体に YAML ファイルがあるとは考えにくいですね。正しいパスは /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 アプリケーションを再構築してください。