Imposible instalar Discourse Question Answer: ON CONFLICT DO NOTHING

No se puede instalar Discourse Question Answer

== 20211020062413 CreateQuestionAnswerVotes: migrando ========================
-- create_table(:question_answer_votes, {})
   -> 0.0478s
-- add_index(:question_answer_votes, [:post_id, :user_id], {:unique=>true})
   -> 0.0024s
-- execute("INSERT INTO question_answer_votes (post_id, user_id, created_at)
SELECT
  X.post_id AS post_id,
  (X.value>>'user_id')::int AS user_id,
  (X.value>>'created_at')::timestamp AS created_at
FROM (
  SELECT
    post_id,
    jsonb_array_elements(value::jsonb) AS value
  FROM post_custom_fields WHERE name = 'vote_history'
) AS X
WHERE (X.value>>'action') != 'destroy'
ORDER BY (X.value>>'created_at')::timestamp DESC
ON CONFLICT DO NOTHING
")

I, [2022-09-05T08:36:29.418247 #1]  INFO -- : Terminando procesos asíncronos
I, [2022-09-05T08:36:29.418302 #1]  INFO -- : Enviando INT a 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: 41
ds WHERE name = 'vote_history'
) AS X
WHERE (X.value>>'action') != 'destroy'
ORDER BY (X.value>>'created_at')::timestamp DESC
ON CONFLICT DO NOTHING
")

I, [2022-09-05T08:36:29.418247 #1]  INFO -- : Terminando procesos asíncronos
I, [2022-09-05T08:36:29.418302 #1]  INFO -- : Enviando INT a 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: 41
I, [2022-09-05T08:36:29.418383 #1]  INFO -- : Enviando TERM a exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 102
2022-09-05 08:36:29.418 CST [41] LOG:  recibida solicitud de apagado rápido
102:signal-handler (1662338189) Recibida SIGTERM programando apagado...
2022-09-05 08:36:29.419 CST [41] LOG:  abortando transacciones activas
2022-09-05 08:36:29.422 CST [41] LOG:  el proceso secundario \"logical replication launcher\" (PID 50) salió con código de salida 1
2022-09-05 08:36:29.426 CST [45] LOG:  apagando
102:M 05 Sep 2022 08:36:29.437 # Solicitud de apagado del usuario...
102:M 05 Sep 2022 08:36:29.437 * Guardando la instantánea RDB final antes de salir.
2022-09-05 08:36:29.466 CST [41] LOG:  el sistema de bases de datos está apagado
102:M 05 Sep 2022 08:36:29.896 * DB guardado en disco
102:M 05 Sep 2022 08:36:29.896 # Redis está listo para salir, adiós...


FALLIDO
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' falló con el retorno #<Process::Status: pid 790 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
fallo de arranque con código de salida 1
** FALLO AL ARRANQUE ** por favor desplácese hacia arriba y busque mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
e3d5cb6cab0a78a5d9b12c2fb6f5dac60c4e1182509b163f1a4fbdf207578f04

He instalado el plugin Question Answer de Pavilion y lo he eliminado hace mucho tiempo.

Como dice el mensaje…

Lo siento, este es el registro completo:

https://paste.ubuntu.com/p/pmQfNzSk3J/

Parece que hay un problema con el campo ‘vote_history’:

I, [2022-09-05T19:39:21.422820 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
2022-09-05 19:39:34.506 CST [819] discourse@discourse ERROR:  cannot extract elements from a scalar
2022-09-05 19:39:34.506 CST [819] discourse@discourse STATEMENT:  INSERT INTO question_answer_votes (post_id, user_id, created_at)
        SELECT
          X.post_id AS post_id,
          (X.value->>'user_id')::int AS user_id,
          (X.value->>'created_at')::timestamp AS created_at
        FROM (
          SELECT
            post_id,
            jsonb_array_elements(value::jsonb) AS value
          FROM post_custom_fields WHERE name = 'vote_history'
        ) AS X
        WHERE (X.value->>'action') != 'destroy'
        ORDER BY (X.value->>'created_at')::timestamp DESC
        ON CONFLICT DO NOTHING

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

Hubo otro informe de un error similar recientemente - Bootstrap failed with exit code 1 Aunque todavía no hay una solución publicada allí.

¿Quizás esto sea un conflicto con haber instalado previamente el plugin Pavilion? @Hifihedgehog, ¿tu sitio también tuvo instalado eso anteriormente?

1 me gusta

El error está en la línea 586.

No se puede obtener el valor de un escalar (por memoria). Copia aquí lo que hay alrededor. No está claro si es un error en la migración o algo que necesita ser (o puede ser si tienes prisa) arreglado en tu base de datos.

Editar: parece que eliminar la respuesta a la pregunta lo solucionará a corto plazo.

1 me gusta