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.

¿Ese método eliminaría las entradas que el plugin habría creado en la base de datos, como tablas o registros?

¿O al desinstalar un plugin quedaría basura en la base de datos?

He utilizado este método varias veces, pero el complemento Fingerprint no se desinstala, a pesar de que no está en mi app.yml.

¿Cómo se puede eliminar de todos modos?

¿Reconstruiste después de editar tu app.yml?

¿Limpiaste tu caché local?

Sí, he tenido varias reconstrucciones y cambios desde entonces. He borrado mi caché.

¿Y guardaste después de cambiar tu app.yml? :man_shrugging:

Por supuesto, de lo contrario los complementos que instalé después no se instalarían, pero lo están :grinning_face:

En un foro de soporte, nada es obvio :scream:

Para quienes solo administran Discourse ocasionalmente, para principiantes o, en general, para ahorrar tiempo, lo más útil es ser lo más específico posible.

En este caso concreto, ¿dónde se encuentra exactamente el archivo app.yml? No veo ninguno en /var/discourse, pero sí veo un app-sparkpost.yml. Quizás sea el archivo que creé hace unos 5 años al desplegar la instancia; no lo sé. ¿Es esa la ruta correcta? ¿Cómo sabe Discourse que debe leer este archivo si no hay ningún app.yml en /var/discourse?

No esperaría encontrar archivos YAML en /var/discourse en sí mismo. La ruta correcta sería /var/discourse/containers. Creo que Discourse leerá todos los archivos en el directorio containers, pero un ingeniero estará mejor equipado para responder esto que yo. No creo que el nombre importe realmente.

Creo que app.yml se encuentra en /var/discourse/containers/app.yml. Deberás editar ese archivo y eliminar cualquier referencia al plugin. Deberías poder encontrar algo similar a lo siguiente en el archivo:

## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para más detalles
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

Cada una de las líneas de git clone allí se refiere a un plugin instalado en la instancia de Discourse. Después de editar el archivo, deberás reconstruir tu aplicación de Discourse. Desde la carpeta /var/discourse, puedes ejecutar ./launcher rebuild app para reconstruir tu aplicación de Discourse.