Fehler beim Upgrade, Bootstrapping fehlgeschlagen

Hallo! Ich habe ein Problem mit dem letzten Update:

FAILED -------------------- Pups::ExecError: cd /var/www/discourse & su discourse -c ‘bundle exec rake db:migrate’ fehlgeschlagen mit Rückgabewert #<Process::Status: pid 690 exit 1> Speicherort des Fehlers: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’ exec fehlgeschlagen mit den Parametern {“cd”=>“$home”, “hook”=>“db_migrate”, “cmd”=>[“su discourse -c ‘bundle exec rake db:migrate’”]} 7027ff0ccd166f831f9728472676ad91704fdd4caa6833a219d44697e740acdc ** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben. ./discourse-doctor kann bei der Diagnose des Problems helfen.

Sideqik ist auch gestoppt.

Kann mir jemand helfen? Danke!!

P.S. Die Seite ist llastres.com

2 „Gefällt mir“

Können Sie bitte tun, was die Nachricht besagt und

Wir benötigen das gesamte Protokoll, um Fehler zu beheben.

3 „Gefällt mir“

Ok, wie kann ich sie identifizieren? Suche nach dem Wort „Fehler“? Wenn Sie mir sagen, wie ich das Log ausführen kann, werde ich es anhängen. Ich bin neu in der Verwendung von Servern. Vielen Dank für Ihre Hilfe.

Bearbeiten, ich habe das gefunden:

Caused by:                                              
PG::DuplicateTable: ERROR:  relation „discourse_reactions_reactions“ already exists
2 „Gefällt mir“

Können Sie Ihre app.yml-Datei teilen?

3 „Gefällt mir“

Entschuldigung, ich war bei der Arbeit. Hier ist meine app.yml:

## Dies ist die All-in-One, eigenständige Discourse Docker Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SUPER SUPER EMPFINDLICH GEGENÜBER FEHLERN BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei nach Bedarf zu validieren

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Kommentieren Sie diese beiden Zeilen aus, wenn Sie Lets Encrypt (https) hinzufügen möchten
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## Welche TCP/IP-Ports soll dieser Container bereitstellen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.spanish"

  ## Setzen Sie db_shared_buffers auf maximal 25% des Gesamtspeichers.
  ## wird automatisch vom Bootstrap basierend auf dem erkannten RAM gesetzt, oder Sie können überschreiben
  db_shared_buffers: "2048MB"

  ## kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
  #db_work_mem: "40MB"

  ## Welche Git-Revision soll dieser Container verwenden? (Standard: tests-passed)
  #version: tests-passed

env:
  LC_ALL: es_ES.UTF-8
  LANG: es_ES.UTF-8
  LANGUAGE: es_ES.UTF-8
  DISCOURSE_DEFAULT_LOCALE: es

  ## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
  ## wird automatisch vom Bootstrap basierend auf den erkannten CPUs gesetzt, oder Sie können überschreiben
  UNICORN_WORKERS: 8

  ## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren wird
  ## Erforderlich. Discourse funktioniert nicht mit einer reinen IP-Nummer.
  DISCOURSE_HOSTNAME: EDITED

  ## Kommentieren Sie aus, wenn der Container mit demselben Hostnamen gestartet werden soll
  ## (-h Option) wie oben angegeben (Standard "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste von per Komma getrennten E-Mails, die beim ersten Anmelden zu Administratoren und Entwicklern gemacht werden
  ## Beispiel 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'EDITED'

  ## TODO: Der SMTP-Mailserver, der zum Überprüfen neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  # SMTP-ADRESSE, Benutzername und Passwort sind erforderlich
  # WARNUNG: Das Zeichen '#' im SMTP-Passwort kann Probleme verursachen!
  DISCOURSE_SMTP_ADDRESS: EDITED
  DISCOURSE_SMTP_PORT: EDITED
  DISCOURSE_SMTP_USER_NAME: EDITED
  DISCOURSE_SMTP_PASSWORD: EDITED
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard true)
  DISCOURSE_SMTP_DOMAIN: EDITED
  DISCOURSE_NOTIFICATION_EMAIL: EDITED

  ## Wenn Sie die Lets Encrypt-Vorlage hinzugefügt haben, kommentieren Sie unten aus, um ein kostenloses SSL-Zertifikat zu erhalten
  LETSENCRYPT_ACCOUNT_EMAIL: EDITED

  ## Die HTTP- oder HTTPS-CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
  ## siehe https://meta.discourse.org/t/14857 für Details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## Der Maxmind Geolocation IP-Adressschlüssel für die IP-Adresssuche
  ## siehe https://meta.discourse.org/t/-/137387/23 für Details
  DISCOURSE_MAXMIND_LICENSE_KEY: EDITED

## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins gehen hier hin
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-reactions
## Beliebige benutzerdefinierte Befehle, die nach dem Erstellen ausgeführt werden sollen
run:
  - exec: echo "Beginn der benutzerdefinierten Befehle"
  ## Wenn Sie die 'Von'-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, kommentieren Sie die Zeile aus und ändern Sie sie:
  ## Nachdem Sie die erste Registrierungs-E-Mail erhalten haben, kommentieren Sie die Zeile wieder aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Ende der benutzerdefinierten Befehle"
1 „Gefällt mir“

Die Wahrheit ist, dass ich nie Probleme beim Aktualisieren hatte. Ich habe nichts Seltsames getan, ich habe nur das System aktualisiert und die Warnung erhalten, dass ein Fehler aufgetreten ist.

Das ist das gesamte Protokoll:

1 „Gefällt mir“

Es hat Probleme beim Ausführen einer Migration vom Mai 2021. Wurde diese Website zwischen den Release-Kanälen (Beta/Stable/Tests-Bestanden) verschoben oder zu einem bestimmten Zeitpunkt aus einem Backup wiederhergestellt?

1 „Gefällt mir“

Ich erinnere mich, dass wir an diesem Datum (21. Mai) von mybb migriert sind.

Ja, es stimmt, dass ich heute versucht habe, ein Backup vom Anfang des Monats wiederherzustellen, um eine funktionierende Kopie vor dem Fehler zu erhalten, aber als ich auf Start klickte, erschien ein Fehlerbildschirm.

Entschuldigung, wenn meine Schrift seltsam ist, ich benutze einen Übersetzer.

2 „Gefällt mir“

Ich kann immer noch keine Lösung finden und die Foren sind immer noch nicht erreichbar. Haben Sie eine Idee, wie ich weiter vorgehen soll? Danke!!

2 „Gefällt mir“

Mein Forum ist nach dem Upgrade ausgefallen. Das Update schien gut zu verlaufen, aber als ich die Forenseite aufrief, war sie leer.

Ich habe es manuell aktualisiert, und das Forum war in Ordnung. Ich weiß nicht, ob Ihnen das weiterhilft.

2 „Gefällt mir“

Vielen Dank für Ihre Antwort. Ich glaube, mein Problem hängt mit einem Datenbankfehler im Zusammenhang mit der Migration der Foren zusammen. Ein Wiederaufbau der App funktioniert nicht.

Ich habe die FAQ und die Handbücher geprüft, aber keine Lösung gefunden.

Ich habe einige Backups von davor (glaube ich) dem Fehler, aber ich kann sie nicht laden, da die App nicht läuft. Ich kann nur daran denken, alles zu löschen, eine saubere Neuinstallation durchzuführen und ein Backup zu laden…

1 „Gefällt mir“

Wenn Sie ein Backup haben und davon ausgehen, dass Sie die App nicht ausführen können (um das Backup wiederherzustellen), was können Sie tun? Sehen Sie keine andere Möglichkeit, als Docker zu löschen und neu zu beginnen?

1 „Gefällt mir“

Das einzige Thema, das ich mit einem ähnlichen Problem finden konnte, war Unable to login into discourse suddenly - #8 by Tarek_Khalil, und der Rat war, ein Backup von vor dem Migrations-Snafu wiederherzustellen, was in Ihrem Fall möglicherweise nicht die beste Option ist, da dies einige Zeit her ist.\n\nIch fürchte, Datenbankfehler liegen außerhalb meines Fähigkeitsbereichs. @pfaffman und @RGJ sind normalerweise sehr gut darin (obwohl ich nicht weiß, ob sie das schon einmal erlebt haben). Haben Sie Jungs ein paar Tricks auf Lager für dieses Problem?

2 „Gefällt mir“

Was Sie tun müssen, ist, in PostgreSQL einzusteigen und diese Tabelle zu löschen.

Grob gesagt, ist es so etwas wie

./launcher enter app 
sudo postgres
psql 
drop table the_table _mentioned above ;

Und dann sollten Sie in der Lage sein, das Upgrade auszuführen.

Bearbeiten: Aber hoffentlich machen Sie zuerst ein reines Datenbank-Backup, nur für den Fall!

4 „Gefällt mir“

Ich entschuldige mich, ich bin neu in der Verwendung von Linux-Servern und Befehlen. Die App lief nicht, also mache ich:

./launcher start app
x86_64 arch detected.                                                                                           starting up existing container                          
+ /usr/bin/docker start app
app

Danach:

./launcher enter app

Und dann, nach Ihren Anweisungen, erster Fehler:

sudo postgres            
sudo: postgres: command not found

Wenn ich psql eingebe:

psql: error: FATAL: database "root" does not exist

Entschuldigung. Ich bin auf meinem Handy und kann nicht klar genug denken, um es zu erklären…

Nach dem Start der App

su - postgres
psql discourse

Und dann die

 drop table discourse_reactions_reactions ;

Und dann tippen Sie exit oder control-d ein paar Mal, um alles zu verlassen.

Gern geschehen! Wenn ich eine Tabelle leere, gibt mir eine andere einen Fehler. Ich habe bereits etwa 3 Tabellen geleert… Soll ich so weitermachen, eine nach der anderen? Vielen Dank für Ihre Hilfe.

Hmm. Ich hoffe, Sie haben ein Backup. Aber vielleicht? Es ergibt keinen Sinn, dass die Migrationen so aus dem Ruder gelaufen sind.

1 „Gefällt mir“

Ich antworte mir selbst. Nachdem ich 7 Tabellen geleert habe (discourse_reactions_reactions, directory_columns, external_upload_stubs, associated_groups, user_associated_groups, group_associated_groups, discourse_reactions_reaction_users) läuft die Seite wieder. Ich habe auch das letzte Backup wiederhergestellt!

Vielen Dank an alle für eure Hilfe! Schönes Wochenende :slight_smile:

2 „Gefällt mir“

Aber konnten Sie auf die neueste Version upgraden?

1 „Gefällt mir“