Acho que isso é mais ou menos um bug, mas o que quer que seja. Há alguns momentos a reconstrução falhou. Sem o Discourse AI, funcionou.
Este foi o primeiro estranho, mas não acho que seja relevante.
I, [2025-01-21T10:15:39.800894 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
stringio (>= 0)
Available/installed versions of this gem:
- 3.1.2
- 3.1.1
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
Please report a bug if this causes problems.
Aqui começa
I, [2025-01-21T10:16:08.572988 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
Plugin name is 'discourse-microsoft-auth', but plugin directory is named 'discourse-plugin-office365-auth'
rake aborted!
ActiveRecord::DuplicateMigrationNameError: (ActiveRecord::DuplicateMigrationNameError)
Multiple migrations have the name EnablePgVectorExtension.
E por último, temos esta parte menos informativa:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 990 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
Agora o trabalho está feito. Entendo por que é como é, mas precisamos de outra maneira de lidar com plugins. Claro, contêineres diferentes, mas…
De qualquer forma. É um conflito entre Discourse AI, depois que o sistema de cotas chegou, e Discourse AI Topic Summary 🤖 — outro deve ser desabilitado ao reconstruir.
Então, deixo vocês discutindo com @merefield quem fará o quê.
Ótimo! Só para constar, a culpa foi definitivamente minha e não da DAI.
Eu fiz um release de refatoração do AI Topic Summary pouco antes, que ironicamente não teve muito a ver com essa migração, apenas a agrupei. O release adicionou CI adequado e conformidade com Zeitwerk.