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?

이 방법을 여러 번 시도했지만, app.yml에 해당 항목이 없는데도 Fingerprint 플러그인이 제거되지 않습니다.

어떻게 하면 이 플러그인을 삭제할 수 있을까요?

app.yml 파일을 수정한 후 다시 빌드하셨나요?

로컬 캐시를 지우셨나요?

네, 이후에 여러 번 재구축과 변경을 했습니다. 캐시도 비웠습니다.

그리고 app.yml을 수정한 후 저장하셨죠 :man_shrugging:

물론이죠, 그렇지 않으면 나중에 설치한 플러그인들이 설치되지 않을 테니까요. 하지만 지금은 괜찮아요 :grinning_face:

지원 포럼에서는 아무것도 당연하지 않아요 :scream:

가끔만 Discourse를 관리하거나, 초보자에게, 또는 일반적으로 시간을 절약하기 위해 가능한 한 구체적으로 질문하는 것이 가장 도움이 됩니다.

이 특정 사례에서 app.yml 파일이 정확히 어디에 있나요? /var/discourse 디렉터리에는 해당 파일을 찾지 못했지만, app-sparkpost.yml은 볼 수 있습니다. 아마도 약 5년 전 인스턴스를 배포할 때 제가 만든 파일일 수도 있고, 그렇지 않을 수도 있습니다. 이것이 올바른 경로인가요? /var/discourse에 app.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 애플리케이션을 다시 빌드할 수 있습니다.