I need to be able to run custom tasks against a Discourse forum. Is there any way of loading rake tasks defined in a plugin so that these can be used in production?
I think this should work. Just put them in the same directory in the plugin as where they live in core.
I’ve done this in the past with creating a rake task that runs after another but haven’t created a standalone task.
Yep this works. It didn’t appear to work for me at first hence me asking the question, but I’ve tried this again and works first time.
I added my rake task in lib/tasks in my plugin. Thought I’d confirm this works for anyone else that stumbles upon this.
Anyone experience lib/tasks rake tasks executing twice? Ours seems to execute twice from rake subscriptions:procourse_convert.
Hi @kimardenmiller , did you ever find an answer to why your rake task executes twice?
I think it might have had something to do with declaring the same method in two places, which I think caused it to run twice. Not verified, but check for that.
EDIT: Ich glaube, ich habe herausgefunden, wie das passiert.
Es folgt nicht wirklich der Konvention, oder vielleicht zu sehr.
Das Problem ist, wenn Sie die Rake-Datei in plugin.rb referenzieren, scheint sie zweimal ausgeführt zu werden, aber die Rake-Aufgabe ist enthalten, auch wenn Sie sie nicht referenzieren, sodass sie bei der Initialisierung nicht geladen werden muss.
Soweit ich weiß, gibt es hier keine Discourse-spezifische Logik. Ich vermute, dass die Task-Dateien automatisch geladen werden, wenn du eine ::Rails::Engine für dein Plugin definiert hast?