Umzug auf einen neuen Server – Fehler mit der Datenbank

Wir versuchen, alles auf einen neuen Server zu verschieben. Nach der Migration erscheint oben folgende Meldung:

Wenn ich versuche, Folgendes innerhalb der App auszuführen:

  # sudo ./launcher enter app
  # rails c
  > user = User.find_by_email("<admin_email>")
  > user.admin = true
  > user.save`

Erhalte ich folgenden Fehler:

ActiveModel::MissingAttributeError: can’t write unknown attribute ``
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activemodel-6.0.2.2/lib/active_model/attribute.rb:206:in with_value_from_database' Verursacht durch ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ... = '2020-04-23 16:30:36.173916' WHERE "site_settings"."" = 3 ^ from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in exec_params’
Verursacht durch PG::SyntaxError: ERROR: zero-length delimited identifier at or near “”“”
LINE 1: … = ‘2020-04-23 16:30:36.173916’ WHERE “site_settings”.“” = 3
^
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in `exec_params’

Habt ihr Ideen, wie man die Installation abschließen kann? Es könnte so aussehen, als wäre eine Tabelle beschädigt.

Könntest du kurz zurücktreten und uns genauer erklären, was du genau zu tun versuchst? Geschieht dies vor oder nach der Wiederherstellung eines Backups? Oder handelt es sich um eine neue Installation?

Durchgeführte Schritte:

  1. Installation der neuesten Version auf dem neuen Server
  2. Umschalten des alten Servers auf Nur-Lese-Modus und Sicherung erstellen
  3. Wiederherstellung der Sicherung auf dem neuen Server

Der Fehler tritt nach Schritt 3 auf, und wir haben den Vorgang zweimal wiederholt.

Haben Sie eine Entwickler-E-Mail in app.yml definiert? Haben Sie bereits versucht, den Container neu zu erstellen?

Ja. Discourse funktioniert ohne Migration korrekt. Keine Fehler. Nachdem die Sicherungsdatenbank wiederhergestellt wurde, können die Einstellungen nicht geändert werden, da ein Fehler auftritt, und beim Versuch, die Entwickler-E-Mail zu aktivieren, wird keine E-Mail gesendet. Deshalb habe ich versucht, das Konto manuell zu aktivieren, bin dann aber auf diesen Fehler gestoßen.

Hast du nach der Wiederherstellung des Backups ein ./launcher rebuild app ausgeführt? Oder bist du in den Container eingestiegen und hast rake db:migrate ausgeführt? Das könnte helfen, aber wir können das erst sicher sagen, wenn wir es ausprobieren :smiley:

Ich habe die Launcher-Rebuild-App bereits ausgeführt, aber das Problem besteht weiterhin. Soll ich den Rake-Befehl vom Server aus oder innerhalb der App ausführen (launcher enter app)?

./launcher rebuild app bewirkt dasselbe.

Ist die vorherige Instanz noch ausgeführt? Wenn ja, ist es ratsam, die neue Instanz zu löschen und sie mit einem frischen Backup der alten Instanz neu aufzubauen.

Ja, der vorherige Server läuft noch. Nach einer tiefergehenden Untersuchung des Problems stellt sich heraus, dass dies auch auf dem alten Server passiert. Der gleiche Fehler taucht auf. :face_with_raised_eyebrow:

Soll ich versuchen, die Tabelle site_settings zu leeren und die Einstellungen manuell neu zu setzen? Wird Discourse funktionieren, nachdem ich alle Einträge aus dieser Tabelle manuell in PostgreSQL gelöscht habe?

Ich würde das vermeiden, es sei denn, du weißt, was du tust.

Vielleicht solltest du im Marketplace nachfragen, um weitergehende Hilfe zu erhalten. Leider klingt es so, als hättest du eine beschädigte Installation.