Datenbankdateien sind mit dem Server inkompatibel (bei Update innerhalb von Linode)

Ich habe die Symptome, die unter Error Updating from 3.4.0.beta3-dev to 3.4.0.beta3 beschrieben werden.
Nur der Fehler ist anders.

Ich kann dein Bild nicht zitieren.

Aber es sieht so aus, als müsstest du dein altes postgres_data_old Verzeichnis löschen. Wenn du Platz hast und paranoid bist, kannst du es umbenennen.

[Zitat=“Jay Pfaffman, Beitrag:2, Thema:350727, Benutzername:pfaffman”]
Ich kann dein Bild nicht zitieren.
[/Zitat]

Ich kann nicht herausfinden, wie man die Weblish-Bildschirm-Ausgabe kopiert

1 „Gefällt mir“

Das ist der wichtigste Teil meiner Nachricht.

Überprüfen Sie vielleicht zuerst, ob es alt ist

 ls -l /var/discourse/shared/standalone/

und stellen Sie sicher, dass dieses Backup-Verzeichnis nicht vom heutigen Datum ist.

Wenn Sie genügend Speicherplatz haben, können Sie etwas tun wie

cd /var/discourse
cd shared/standalone
mv postgres_data_old postgres_data_delete_me

und versuchen Sie es dann erneut

1 „Gefällt mir“

Kein Erfolg.
Ich glaube, ich dupliziere Upgrade failed spectacularily

Könnten Sie den Inhalt Ihrer app.yml-Datei teilen? Schwärzen Sie sensible Informationen, bevor Sie sie posten.

von root@localhost: /var/discourse/containers

## Dies ist die All-in-One, Standalone 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 verfügbar machen?
## 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.english"

  ## Stellen Sie db_shared_buffers auf maximal 25% des Gesamtspeichers ein.
  ## wird automatisch von bootstrap basierend auf dem erkannten RAM gesetzt, oder Sie können überschreiben
  db_shared_buffers: "256MB"

  ## 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:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

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

  ## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren wird
  DISCOURSE_HOSTNAME: <mydomain>

  ## Kommentieren Sie aus, wenn Sie möchten, dass der Container mit demselben
  ## Hostnamen (-h Option) wie oben angegeben gestartet wird (Standard "hostname-config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste der durch Kommas getrennten E-Mails, die beim erstmaligen Anmelden zu Administratoren und Entwicklern gemacht werden
  ## Beispiel 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: <myemail>

  ## TODO: Der SMTP-Mailserver, der zum Validieren neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  DISCOURSE_SMTP_ADDRESS: <mymailorg>
  DISCOURSE_SMTP_PORT: <myport>
  DISCOURSE_SMTP_USER_NAME: <mysmpremail>
  DISCOURSE_SMTP_PASSWORD: <mypassword>
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard true)

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

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

## 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-solved.git
          - git clone https://github.com/discourse/discourse-math.git

## Alle benutzerdefinierten 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"

Könnten Sie bitte Ihre Docker-Version bestätigen? Wenn Sie eine ältere Version als unsere empfohlene Version 24.0.7 verwenden, empfehle ich Ihnen, Docker zu aktualisieren und es dann erneut zu versuchen.

Es gab ähnliche Probleme, die in einem separaten Thema gemeldet wurden, und es scheint, dass die Aktualisierung von Docker das Problem dort behoben hat.

Docker-Version 20.10.7, Build f0df350

cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.7 LTS (Xenial Xerus)"

Es scheint, als ob Sie ein ähnliches Docker-Problem haben könnten, wie es in diesem anderen Thema gemeldet wurde.

Ich schlage vor, dass Sie sowohl Ubuntu als auch Docker auf neuere Versionen aktualisieren und dann erneut versuchen, neu zu erstellen.

Wenn Ihr alter app-Container noch existiert und Sie die vorhandenen Datendateien in shared/standalone/postgres_data nicht geändert haben, können Sie versuchen, ./launcher start app auszuführen, um die Website vorübergehend auf dem alten Container zu starten.

2 „Gefällt mir“

Ich habe die Schritte zur Aktualisierung von Ubuntu durchlaufen und schließlich auf \u003cOK\u003e geklickt.\n

\nAber der Bildschirm ist bei Folgendem eingefroren:\n\n\nBeim erneuten Verbinden sehe ich, dass ich Ubuntu 18.0.4.6 LTS (Bionic Beaver) habe.

Es wird viel einfacher, wenn Sie eine neue VM mit einem aktuellen Betriebssystem erstellen. 18.04 ist am Ende seiner Lebensdauer und 20.04 läuft im April aus.

Wenn Sie ein aktuelles Backup haben, erstellen Sie einen neuen Server und stellen Sie dieses Backup wieder her, wodurch die Postgres-Upgrade-Probleme vollständig vermieden werden.

Discourse benötigt kein Postgres, das auf dem Betriebssystem installiert ist. Dies ist ein weiterer Grund, mit einem frischen Betriebssystem zu beginnen.

1 „Gefällt mir“

Danke Jay
Ich konnte ein Backup-Linode auf ein anderes Linode (linode2) wiederherstellen
Jetzt muss ich Discourse auf linode2 öffnen, damit ich Discourse eine Sicherung per E-Mail senden lassen kann
Ich habe eine neue DNS-Einstellung für linode2 vorgenommen, aber wenn ich dorthin gehe, erhalte ich 502 Bad Gateway
Vielleicht muss ich eine Weile warten?
Seltsamerweise leitet discbak.softwarebydesign.com.au (linode2) derzeit zu discourse.softwarebydesign.com.au (auf dem ursprünglichen Linode) um

Sie können das Backup mit scp/rsync kopieren. Es ist einfacher und schneller (es sei denn, Sie wissen nicht, was das bedeutet).

Sie möchten wirklich eine neue VM mit einem neuen Betriebssystem erstellen (nicht ein Backup eines Servers mit einem veralteten Betriebssystem) und dorthin wechseln, wie unter Verschieben einer Discourse-Site auf einen anderen VPS mit rsync beschrieben. Das, das ich gerade kopiert habe, hatte auch einige Probleme mit dem Besitz. Sie werden wahrscheinlich auch welche haben.

Wenn discbak dasselbe Image wie der andere Server ausführt, würde ich erwarten, dass es einen Zertifikatsfehler gibt (es sei denn, Sie haben http:// besucht) und dann zu dem weiterleitet, was in HOSTNAME steht.

Man kann wohl sagen, dass ich nicht wirklich weiß, was ich tue.
Ich habe einen neuen VPS mit Ubunto 24.0.1 LTS erstellt und bin bei der Anweisung angelangt:

rsync -rvz example.com:/var/discourse /var

Aufgrund meines fehlgeschlagenen Upgrades gibt example.com “502 Bad Gateway” zurück.
Ich bin dabei, zu lernen, wie ich trotzdem Zugriff gewähren kann.