Nicht in der Lage, Discourse Question Answer zu installieren: ON CONFLICT DO NOTHING

Discourse Frage-Antwort kann nicht installiert werden

== 20211020062413 CreateQuestionAnswerVotes: migriert ========================
-- 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 -- : Beende asynchrone Prozesse
I, [2022-09-05T08:36:29.418302 #1]  INFO -- : Sende INT an 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 -- : Beende asynchrone Prozesse
I, [2022-09-05T08:36:29.418302 #1]  INFO -- : Sende INT an 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 -- : Sende TERM an 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:  schnelle Herunterfahr-Anforderung empfangen
102:signal-handler (1662338189) SIGTERM empfangen, Herunterfahren wird geplant...
2022-09-05 08:36:29.419 CST [41] LOG:  laufende Transaktionen abbrechen
2022-09-05 08:36:29.422 CST [41] LOG:  Hintergrundarbeiter „logical replication launcher“ (PID 50) mit Exit-Code 1 beendet
2022-09-05 08:36:29.426 CST [45] LOG:  wird heruntergefahren
102:M 05 Sep 2022 08:36:29.437 # Benutzer hat Herunterfahren angefordert...
102:M 05 Sep 2022 08:36:29.437 * Speichere den finalen RDB-Snapshot vor dem Beenden.
2022-09-05 08:36:29.466 CST [41] LOG:  Datenbanksystem wird heruntergefahren
102:M 05 Sep 2022 08:36:29.896 * DB auf Festplatte gespeichert
102:M 05 Sep 2022 08:36:29.896 # Redis ist nun bereit zum Beenden, auf Wiedersehen...


FEHLGESCHLAGEN
--------------------
Pups::ExecError: cd /var/www/discourse & bundle exec rake db:migrate' mit Rückgabewert #<Process::Status: pid 790 exit 1> fehlgeschlagen
Ort des Fehlschlags: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec mit den Parametern {\"cd\"=>\"$home\", \"hook\"=>\"db_migrate\", \"cmd\"=>[\"su discourse -c 'bundle exec rake db:migrate'\"]} fehlgeschlagen
bootstrap fehlgeschlagen mit Exit-Code 1
** BOOTSTRAP FEHLGESCHLAGEN ** bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
./discourse-doctor kann helfen, das Problem zu diagnostizieren.
e3d5cb6cab0a78a5d9b12c2fb6f5dac60c4e1182509b163f1a4fbdf207578f04

Ich habe das Question Answer Plugin von Pavilion installiert und vor langer Zeit wieder entfernt

Wie die Nachricht besagt…

Entschuldigung, das ist das vollständige Protokoll:

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

Es sieht so aus, als gäbe es ein Problem mit dem Feld „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:

Es gab kürzlich einen weiteren Bericht über einen ähnlichen Fehler – Bootstrap failed with exit code 1, obwohl dort noch keine Lösung gepostet wurde.

Vielleicht ist dies ein Konflikt mit der zuvor installierten Pavilion-Erweiterung? @Hifihedgehog, war diese auf Ihrer Website auch zuvor installiert?

1 „Gefällt mir“

Der Fehler befindet sich in Zeile 586.

Kann keinen Wert aus Skalar (per Speicher) abrufen. Kopieren Sie die Dinge dort herum hierher. Mir ist nicht klar, ob es sich um einen Fehler in der Migration handelt oder um etwas, das in Ihrer Datenbank behoben werden muss (oder werden kann, wenn Sie es eilig haben).

Bearbeiten: Sieht so aus, als würde das Entfernen der Fragenantwort es kurzfristig lösen.

1 „Gefällt mir“