Erreur lors de la mise à niveau de la Beta 3.1.x vers la dernière version

Je fais une mise à niveau environ tous les 2 à 3 jours, la dernière mise à jour a réussi.

La mise à jour d’aujourd’hui via l’URL /admin/upgrade a d’abord échoué.

Ensuite, j’ai fait ce que je fais d’habitude :

cd /var/discourse
sudo git pull
sudo ./launcher rebuild app

Cela a également entraîné une erreur :

/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
I, [2023-01-20T15:27:00.834259 #1]  INFO -- : == 20230118020114 AddPublicTopicCountToTags: migrating ========
-- add_column(:tags, :public_topic_count, :integer, {:default=>0, :null=>false})
   => 0.0138s
-- execute("UPDATE tags t\nSET public_topic_count = x.topic_count\nFROM (\n  SELECT\n    COUNT(topics.id) AS topic_count,\n    tags.id AS tag_id\n  FROM tags\n  INNER JOIN topic_tags ON tags.id = topic_tags.tag_id\n  INNER JOIN topics ON topics.id = topic_tags.topic_id AND topics.deleted_at IS NULL AND topics.archetype != 'private_message'\n  INNER JOIN categories ON categories.id = topics.category_id AND NOT categories.read_restricted\n  GROUP BY tags.id\n) x\nWHERE x.tag_id = t.id\nAND x.topic_count <> t.public_topic_count;\n")

I, [2023-01-20T15:27:00.834823 #1]  INFO -- : Terminating async processes
I, [2023-01-20T15:27:00.834868 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2023-01-20T15:27:00.835173 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2023-01-20 15:27:00.835 UTC [42] LOG:  received fast shutdown request
103:signal-handler (1674228420) Received SIGTERM scheduling shutdown...
2023-01-20 15:27:00.849 UTC [42] LOG:  aborting any active transactions
2023-01-20 15:27:00.851 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2023-01-20 15:27:00.855 UTC [46] LOG:  shutting down
2023-01-20 15:27:00.901 UTC [42] LOG:  database system is shut down
103:M 20 Jan 2023 15:27:00.905 # User requested shutdown...
103:M 20 Jan 2023 15:27:00.905 * Saving the final RDB snapshot before exiting.
103:M 20 Jan 2023 15:27:00.950 * DB saved on disk
103:M 20 Jan 2023 15:27:00.950 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'bundle exec rake db:migrate' failed with return #&lt;Process::Status: pid 390 exit 1&gt;
Location of failure: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
37cbe5dc5c82e0a41e9e1deea5b99f5e643bfe6bcd53d52c38e3e855a85ed81e

En remontant plus loin, je vois une entrée :

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "index_tags_on_name"
DETAIL:  Key (name)=(net) already exists.

Je suis vraiment perdu sur la façon de corriger/résoudre ce problème.

Mon forum est maintenant hors ligne. J’ai relancé sudo ./launcher rebuild app. Cela a également échoué.

Quelqu’un pourrait-il m’aider avec quelques suggestions pour résoudre ce problème ?

Veuillez exécuter ./launcher start app pour redémarrer l’ancienne image. Cela pourrait remettre votre forum en ligne.

1 « J'aime »

Merci beaucoup.

Le conteneur fonctionne à nouveau, mais l’erreur persiste.

J’ai très probablement le même problème qu’ici :

Je ne vais pas essayer de le résoudre de la même manière que décrit là-bas.

Mise à jour 1 - Solution

OK, il semble que j’aie réussi à résoudre le problème avec les étapes suivantes :

  1. J’ai modifié le fichier app.yaml et j’ai fait :
  2. J’ai reconstruit l’image.
  3. J’ai activé et démarré le plugin Data Explorer et utilisé cette requête pour identifier les balises en double.
  4. J’ai utilisé l’interface d’administration habituelle pour identifier les balises. J’ai ensuite renommé une balise pour qu’elle soit à nouveau unique.
  5. J’ai retiré l’épinglage de la version.
  6. J’ai reconstruit Discourse sudo ./launcher rebuild app. Cela a maintenant réussi.
  7. Après avoir démarré Discourse, je suis allé dans la zone d’administration des balises et j’ai continué à travailler sur les doublons (j’ai supprimé l’une des anciennes balises dupliquées après avoir attribué l’autre balise).
1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.