Je suppose que c’est plus ou moins un bug, mais peu importe. Il y a quelques instants, la reconstruction a échoué. Sans Discourse AI, elle a réussi.
C’était le premier truc étrange, mais je ne pense pas que ce soit pertinent.
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.
C’est là que ça commence
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.
Et enfin, nous avons cette partie moins informative :
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
Je ne pense pas que ce soit lié, mais comme cela ne provient pas des thèmes, mais des plugins, et que cela a commencé en même temps — du moins pour moi.
20 minutes par plugin… Je sais tellement que cela ne pose pas de conflit avec d’autres plugins d’IA. Tester cela a entraîné plus d’une heure d’interruption.
Mais bien sûr, je vais le faire. Et pourtant, tout le reste fonctionne sauf DAI.
Le travail est maintenant terminé. Je comprends pourquoi c’est comme ça, mais nous avons besoin d’une autre façon de gérer les plugins. Bien sûr, différents conteneurs, mais…
Quoi qu’il en soit. C’est un conflit entre Discourse AI, après l’arrivée du système de quotas, et Discourse AI Topic Summary 🤖 — un autre doit être désactivé lors de la reconstruction.
Alors, je vous laisse discuter avec @merefield de qui fera quoi.
Comme j’ai écrit mes propres plugins d’IA, je n’ai pas d’instance avec les deux, donc c’est difficile pour moi de reproduire.\n\nCela dit, je suis en train de reconstruire mon instance de production avec AI Topic Summary pour voir s’il y a quelque chose d’étrange.
Génial ! Pour information, c’était clairement ma faute et non celle de DAI.
J’ai effectué une refactorisation de la publication de AI Topic Summary juste avant, qui, ironiquement, n’avait pas grand-chose à voir avec cette migration, je l’ai juste regroupée. La publication a ajouté une CI appropriée et la conformité Zeitwerk.