Error al actualizar de Beta 3.1.x a la última versión

Actualizo aproximadamente cada 2 o 3 días y la última actualización tuvo éxito.

La actualización de hoy a través de la URL /admin/upgrade falló inicialmente.

Luego hice lo habitual:

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

Esto también resultó en un error:

/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

Si me desplazo más arriba, veo una entrada:

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

Estoy completamente perdido sobre cómo arreglar/resolver esto.

Mi foro ahora está fuera de línea. Volví a ejecutar sudo ./launcher rebuild app. También falló.

¿Alguien podría ayudarme con algunas sugerencias sobre cómo resolverlo?

Ejecuta ./launcher start app para reiniciar la imagen antigua. Eso puede volver a poner tu foro en línea.

1 me gusta

Muchas gracias.

El contenedor ahora está funcionando de nuevo, pero el error persiste.

Lo más probable es que tenga el mismo problema que aquí:

No intentaré resolverlo de la misma manera que se describe allí.

Actualización 1 - Solución

OK, parece que pude resolverlo con estos pasos:

  1. Edité app.yaml e hice:
  2. Reconstruí la imagen.
  3. Activé e inicié el plugin Data Explorer y usé esta consulta para identificar las etiquetas duplicadas.
  4. Usé la GUI de administración normal para identificar las etiquetas. Luego renombré una etiqueta para que fuera única de nuevo.
  5. Eliminé la versión fijada de nuevo.
  6. Reconstruí Discourse sudo ./launcher rebuild app. Esto ahora tuvo éxito.
  7. Después de iniciar Discourse, fui al área de administración de etiquetas y continué trabajando en las duplicadas (eliminé una de las etiquetas previamente duplicadas después de asignar la otra etiqueta).
1 me gusta

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