Backup-Wiederherstellung schlägt bei sauberer Dev-Docker-Umgebung fehl: FATAL: Peer-Authentifizierung für Benutzer “postgres” fehlgeschlagen

Hallo, in der Anfängeranleitung zur Installation von Discourse für die Entwicklung mit Docker erwähnen einige Kommentare dieses Problem, das meiner Meinung nach tatsächlich ein Fehler ist und hier gemeldet werden sollte. Korrigieren Sie mich, wenn ich falsch liege.

Ich erstelle normalerweise eine Kopie der Produktionsumgebung, um größere Konfigurationsänderungen zu testen, und habe dies schon oft so gemacht. Jetzt schlagen die Backups jedoch mit dieser Fehlermeldung bezüglich der Peer-Authentifizierung fehl.

Nur um den Kontext dessen zu geben, was ich (möglicherweise falsch) tue:

  1. Löschen Sie das lokale Discourse-Verzeichnis vollständig.
  2. Stoppen und entfernen Sie alle Container.
  3. Starten Sie neu, indem Sie Discourse und auch die von mir verwendeten Plugins direkt danach im Plugins-Verzeichnis klonen.
  4. Führen Sie die boot_dev --init-Befehle aus, bundle install, falls erforderlich, und migrieren Sie die Datenbank, falls erforderlich.
  5. Mit dem Dummy-Admin-Konto melde ich mich an und lade das Backup hoch, das ich von meiner Live-Site heruntergeladen habe.
  6. Klicken Sie auf “Backup wiederherstellen”.

Lassen Sie mich wissen, ob ich weitere Informationen bereitstellen kann. Die Backup-Logs finden Sie unten. Und ja, ich habe überprüft, ob in pg_hba.conf in data/postgres/ alle Authentifizierungsmethoden auf „trust“ gesetzt sind.

[2021-11-03 20:55:35] 'koen' hat die Wiederherstellung gestartet!
[2021-11-03 20:55:35] Markiere Wiederherstellung als laufend...
[2021-11-03 20:55:35] Stelle sicher, dass /src/tmp/restores/default/2021-11-03-205535 existiert...
[2021-11-03 20:55:35] Archiv in das temporäre Verzeichnis kopieren...
[2021-11-03 20:55:35] Dump-Datei extrahieren...
[2021-11-03 20:55:36] Metadaten validieren...
[2021-11-03 20:55:36]   Aktuelle Version: 20211022154420
[2021-11-03 20:55:36]   Wiederhergestellte Version: 20211022154420
[2021-11-03 20:55:36] Readonly-Modus aktivieren...
[2021-11-03 20:55:36] Sidekiq pausieren...
[2021-11-03 20:55:36] Bis zu 60 Sekunden warten, bis Sidekiq laufende Jobs beendet hat...
[2021-11-03 20:55:42] Fehlende Funktionen im Schema discourse_functions erstellen...
[2021-11-03 20:55:42] Dump-Datei wiederherstellen... (dies kann eine Weile dauern)
[2021-11-03 20:55:42] psql: Fehler: Verbindung zum Server über Socket „/var/run/postgresql/.s.PGSQL.5432“ fehlgeschlagen: FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer „postgres“
[2021-11-03 20:55:42] EXCEPTION: psql fehlgeschlagen: psql: Fehler: Verbindung zum Server über Socket „/var/run/postgresql/.s.PGSQL.5432“ fehlgeschlagen: FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer „postgres“
[2021-11-03 20:55:42] /src/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/src/lib/backup_restore/database_restorer.rb:26:in `restore'
/src/lib/backup_restore/restorer.rb:51:in `run'
/src/script/spawn_backup_restore.rb:23:in `restore'
/src/script/spawn_backup_restore.rb:36:in `block in <main>'
/src/script/spawn_backup_restore.rb:4:in `fork'
/src/script/spawn_backup_restore.rb:4:in `<main>'
[2021-11-03 20:55:42] Rollback versuchen...
[2021-11-03 20:55:42] Es war kein Rollback erforderlich
[2021-11-03 20:55:42] Aufräumen...
[2021-11-03 20:55:42] Funktionen aus dem Schema discourse_functions löschen...
[2021-11-03 20:55:42] Temporäres Verzeichnis '/src/tmp/restores/default/2021-11-03-205535' entfernen...
[2021-11-03 20:55:42] Sidekiq wieder aktivieren...
[2021-11-03 20:55:42] Wiederherstellung als abgeschlossen markieren...
[2021-11-03 20:55:42] 'koen' über das Ende der Wiederherstellung informieren...
[2021-11-03 20:55:46] Fertig!
1 „Gefällt mir“

Hallo zusammen, ich frage mich nur, ob dies als Fehler eingestuft wird und ob es als solcher akzeptiert wird? Sollte ich es anders aufschreiben oder mehr Informationen hinzufügen? Ich frage mich nur, was der nächste Schritt ist, ich dränge auf kein Lösungsdatum.

Hallo zusammen, ein paar Wochen später dachte ich, ich versuche es noch einmal. Also habe ich wieder alles auf Anfang gesetzt, die frische Entwicklungsumgebung auf meinem lokalen Rechner eingerichtet und mich angemeldet. Dann habe ich die Plugins hinzugefügt, die meiner PROD-Umgebung entsprechen. Ich habe ein Backup von der Live-Seite gezogen und versuche, es in meiner DTA-Umgebung wiederherzustellen. Leider immer noch derselbe Fehler.

Kann das jemand reproduzieren? Ich hatte früher einmal eine native Entwicklungsumgebung laufen, habe diese aber wieder entfernt, als ich die einfache Handhabung des Docker-Setups bemerkte. Könnte mich etwas aus diesem Altbestand verfolgen? Etwas, das von der früheren lokalen PostgreSQL-Datenbankplattform ausgeht? Können die sich überhaupt gegenseitig beeinträchtigen, wenn die saubere Weste aus Docker läuft? Ich spekuliere nur. Kann mir jemand in die richtige Richtung oder zu den richtigen Leuten weisen? Eine Kopie der Live-Seite zu Testzwecken zu machen, ist meiner Meinung nach ein ziemlich wichtiger Anwendungsfall, oder? Gibt es etwas, das ich tun kann, um mehr Informationen bereitzustellen? Ich lasse gerade den automatischen Test laufen, aber auch das liefert nichts…

[2021-11-29 19:43:39] 'koen' hat die Wiederherstellung gestartet!
[2021-11-29 19:43:39] Markiere Wiederherstellung als laufend...
[2021-11-29 19:43:39] Stelle sicher, dass /src/tmp/restores/default/2021-11-29-194339 existiert...
[2021-11-29 19:43:39] Kopiere Archiv in das tmp-Verzeichnis...
[2021-11-29 19:43:39] Entpacke Dump-Datei...
[2021-11-29 19:43:40] Validiere Metadaten...
[2021-11-29 19:43:40]   Aktuelle Version: 20211124161346
[2021-11-29 19:43:40]   Wiederhergestellte Version: 20211123033311
[2021-11-29 19:43:40] Aktiviere Readonly-Modus...
[2021-11-29 19:43:40] Pausiere Sidekiq...
[2021-11-29 19:43:40] Warte bis zu 60 Sekunden, bis Sidekiq die laufenden Jobs beendet hat...
[2021-11-29 19:43:46] Erstelle fehlende Funktionen im discourse_functions Schema...
[2021-11-29 19:43:46] Stelle Dump-Datei wieder her... (das kann eine Weile dauern)
[2021-11-29 19:43:47] psql: Fehler: Verbindung zum Server über Socket „/var/run/postgresql/.s.PGSQL.5432“ fehlgeschlagen: FATAL: Peer-Authentifizierung für Benutzer „postgres“ fehlgeschlagen
[2021-11-29 19:43:47] EXCEPTION: psql fehlgeschlagen: psql: Fehler: Verbindung zum Server über Socket „/var/run/postgresql/.s.PGSQL.5432“ fehlgeschlagen: FATAL: Peer-Authentifizierung für Benutzer „postgres“ fehlgeschlagen

[2021-11-29 19:43:47] /src/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/src/lib/backup_restore/database_restorer.rb:26:in `restore'
/src/lib/backup_restore/restorer.rb:51:in `run'
/src/script/spawn_backup_restore.rb:23:in `restore'
/src/script/spawn_backup_restore.rb:36:in `block in <main>'
/src/script/spawn_backup_restore.rb:4:in `fork'
/src/script/spawn_backup_restore.rb:4:in `<main>'
[2021-11-29 19:43:47] Versuche, zurückzurollen...
[2021-11-29 19:43:47] Es war kein Rollback nötig
[2021-11-29 19:43:47] Bereinige...
[2021-11-29 19:43:47] Lösche Funktionen aus dem discourse_functions Schema...
[2021-11-29 19:43:47] Entferne tmp-Verzeichnis '/src/tmp/restores/default/2021-11-29-194339'...
[2021-11-29 19:43:47] Entpause Sidekiq...
[2021-11-29 19:43:47] Markiere Wiederherstellung als beendet...
[2021-11-29 19:43:47] Benachrichtige 'koen' über das Ende der Wiederherstellung...
[2021-11-29 19:43:51] Fertig!

Koen

Nun, d/rake autospec ergab 14 Fehler, von denen die ersten 6 mit dem PEER-Authentifizierungsproblem zusammenzuhängen scheinen.

Ich kann nichts damit anfangen, aber ich dachte, ich poste es hier für den Fall, dass jemand in der Lage ist, es zu untersuchen. Es sieht jedes Mal nach demselben Fehler aus, aber mit unterschiedlichen Postgres-Versionen.

Ich hoffe, das hilft

Failures:

  1) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 9.5
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:41:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:45:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:61:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:284:in `block (2 levels) in <top (required)>'

  2) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 9.3
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:41:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:45:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:51:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:284:in `block (2 levels) in <top (required)>'

  3) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 12
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:41:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:45:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:74:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:284:in `block (2 levels) in <top (required)>'

  4) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 11
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:41:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:45:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:70:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:284:in `block (2 levels) in <top (required)>'

  5) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 9.5.5
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:41:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:45:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:56:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:284:in `block (2 levels) in <top (required)>'

  6) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 10
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "postgres"
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:41:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:45:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:66:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:284:in `block (2 levels) in <top (required)>'


Ich sehe das auch, unter den gleichen Umständen. Sowohl über die Benutzeroberfläche als auch über das Terminal.

Vollständige Ausgabe unten. Dies wird von WSL2 unter Windows ausgeführt.

Irgendwelche Ideen?

$ d/discourse restore ragdoll-forums-2022-03-27-000005-v20220215015538.tar.gz
Starting restore: ragdoll-forums-2022-03-27-000005-v20220215015538.tar.gz
[STARTED]
'system' hat die Wiederherstellung gestartet!
Wiederherstellung als laufend markieren...
Sicherstellen, dass /src/tmp/restores/default/2022-03-28-104731 existiert...
Archiv in das temporäre Verzeichnis kopieren...
Archiv entpacken, das kann eine Weile dauern...
Dump-Datei extrahieren...
Metadaten validieren...
  Aktuelle Version: 20220325064954
  Wiederhergestellte Version: 20220215015538
Schreibgeschützten Modus aktivieren...
Sidekiq pausieren...
Bis zu 60 Sekunden warten, bis Sidekiq die laufenden Jobs beendet hat...
Fehlende Funktionen im discourse_functions-Schema erstellen...
Dump-Datei wiederherstellen... (das kann eine Weile dauern)
psql: Fehler: Verbindung zum Server über Socket "/var/run/postgresql/.s.PGSQL.5432" fehlgeschlagen: FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer "postgres"
EXCEPTION: psql fehlgeschlagen: psql: Fehler: Verbindung zum Server über Socket "/var/run/postgresql/.s.PGSQL.5432" fehlgeschlagen: FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer "postgres"
/src/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/src/lib/backup_restore/database_restorer.rb:26:in `restore'
/src/lib/backup_restore/restorer.rb:51:in `run'
script/discourse:149:in `restore'
/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<main>'
Versuch, zurückzurollen...
Es war kein Rollback nötig
Aufräumen...
Funktionen aus dem discourse_functions-Schema löschen...
Temporäres Verzeichnis '/src/tmp/restores/default/2022-03-28-104731' entfernen...
Sidekiq entpausieren...
Wiederherstellung als beendet markieren...
'system' über das Ende der Wiederherstellung benachrichtigen...
Fertig!
[FEHLGESCHLAGEN]
Wiederherstellung abgeschlossen.
Fehler konnte nicht gemeldet werden: kein Thread zuweisbar 0   PostSearchData Upsert (1.1ms)  INSERT INTO "post_search_data" ("raw_data","post_id","locale","version","search_data","private_message") VALUES ('The restore has failed. Here’s the log: [2022-03-28 10:47:31] [STARTED] [2022-03-28 10:47:31] ''system'' has started the restore! [2022-03-28 10:47:31] Marking restore as running... [2022-03-28 10:47:31] Making sure /src/tmp/restores/default/2022-03-28-104731 exists... [2022-03-28 10:47:31] Copying archive to tmp directory... [2022-03-28 10:47:31] Unzipping archive, this may take a while... [2022-03-28 10:47:31] Extracting dump file... [2022-03-28 10:47:32] Validating metadata... [2022-03-28 10:47:32] Current version: 20220325064954 [2022-03-28 10:47:32] Restored version: 20220215015538 [2022-03-28 10:47:32] Enabling readonly mode... [2022-03-28 10:47:32] Pausing sidekiq... [2022-03-28 10:47:32] Waiting up to 60 seconds for Sidekiq to finish running jobs... [2022-03-28 10:47:38] Creating missing functions in the discourse_functions schema... [2022-03-28 10:47:38] Restoring dump file... (this may take a while) [2022-03-28 10:47:38] psql: error: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: FATAL : Peer authentication failed for user \"postgres\" [2022-03-28 10:47:38] EXCEPTION: psql failed: psql: error: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: FATAL: Peer authentication failed for user \"postgres\" [2022-03-28 10:47:38] /src/lib/backup_restore/database_restorer.rb:92:in `restore_dump'' /src/lib/backup_restore/database_restorer.rb:26:in `restore'' /src/lib/backup_restore/restorer.rb:51:in `run'' script/discourse:149:in `restore'' /usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'' /usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'' /usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'' /usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/base.rb:485:in `start'' script/discourse:290:in ` \u003c main \u003e '' [2022-03-28 10:47:38] Trying to rollback... [2022-03-28 10:47:38] There was no need to rollback [2022-03-28 10:47:38] Cleaning stuff up... [2022-03-28 10:47:38] Dropping functions from the discourse_functions schema... [2022-03-28 10:47:38] Removing tmp ''/src/tmp/restores/default/2022-03-28-104731'' directory... [2022-03-28 10:47:38] Unpausing sidekiq... [2022-03-28 10:47:38] Marking restore as finished... [2022-03-28 10:47:38] Notifying ''system'' of the end of the restore...', 17, 'en', 4, '''-03'':12,19,30,40,50,61,74,83,91,100,109,118,126,143,157,171,193,218,262,271,283,292,305,315,323,333 ''-28'':13,20,31,41,51,62,75,84,92,101,110,119,127,144,158,172,194,219,263,272,284,293,306,316,324,334 ''/src/lib/backup_restore/database_restorer.rb'':223,228 ''/src/lib/backup_restore/restorer.rb'':232 ''/src/tmp/restores/default/2022-03-28-104731'':47,312 ''/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor.rb'':249 ''/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/base.rb'':253 ''/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/command.rb'':240 ''/usr/local/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb'':244 ''/var/run/postgresql/.s.pgsql.5432'':183,208 ''10'':14,21,32,42,52,63,76,85,93,102,111,120,128,145,159,173,195,220,264,273,285,294,307,317,325,335 ''127'':245 ''149'':237 ''2022'':11,18,29,39,49,60,73,82,90,99,108,117,125,142,156,170,192,217,261,270,282,291,304,314,322,332 ''20220215015538'':107 ''20220325064954'':98 ''26'':229 ''27'':241 ''290'':258 ''31'':16,23,34,44,54,65,78 ''32'':87,95,104,113,122,130 ''38'':147,161,175,197,222,266,275,287,296,309,319,327,337 ''392'':250 ''47'':15,22,33,43,53,64,77,86,94,103,112,121,129,146,160,174,196,221,265,274,286,295,308,318,326,336 ''485'':254 ''51'':233 ''60'':134 ''92'':224 ''archiv'':56,67 ''authent'':187,212 ''clean'':288 ''command'':248 ''connect'':178,203 ''copi'':55 ''creat'':148 ''current'':96 ''directori'':59,313 ''discours'':153,301 ''dispatch'':252 ''drop'':297 ''dump'':80,163,227 ''enabl'':114 ''end'':342 ''error'':177,202 ''except'':198 ''exist'':48 ''extract'':79 ''fail'':2A,6,184,188,200,209,213 ''fatal'':185,210 ''file'':81,164 ''finish'':139,331 ''function'':150,154,298,302 ''invok'':247 ''job'':141 ''main'':260 ''make'':45 ''mark'':35,328 ''may'':69,166 ''metadata'':89 ''miss'':149 ''mode'':116 ''need'':279 ''notifi'':338 ''paus'':123 ''peer'':186,211 ''postgr'':191,216 ''psql'':176,199,201 ''readon'':115 ''remov'':310 ''restor'':1A,4,28,36,105,162,226,231,239,329,345 ''rollback'':269,281 ''run'':38,140,235,243 ''schema'':155,303 ''script/discourse'':236,257 ''second'':135 ''server'':180,205 ''sidekiq'':124,137,321 ''socket'':182,207 ''start'':17,26,256 ''stuff'':289 ''sure'':46 ''system'':24,339 ''take'':70,167 ''tmp'':58,311 ''tri'':267 ''unpaus'':320 ''unzip'':66 ''user'':190,215 ''valid'':88 ''version'':97,106 ''wait'':131 ', TRUE) ON CONFLICT ("post_id") DO UPDATE SET "raw_data"=excluded."raw_data","locale"=excluded."locale","version"=excluded."version","search_data"=excluded."search_data","private_message"=excluded."private_message" RETURNING "post_id"
1 „Gefällt mir“

Ich hatte die gleichen Probleme.
Schließlich habe ich Folgendes als Workaround eingefügt

   if Rails.env.development?
      username = "discourse"
      password = "discourse"
      config["host"] = "localhost"
      config["port"] = 5432
      config["database"] = "discourse_development"
    end

vor

  DatabaseConfiguration.new(

in /lib/backup_restore.rb.

Ich musste auch das Passwort für den Benutzer discourse über

d/psql -c "ALTER USER discourse WITH PASSWORD 'discourse';"

festlegen.

Es mag elegantere Wege geben, dies zu erreichen.

1 „Gefällt mir“

Vielen Dank! Es hat wirklich geholfen! :slight_smile:

Dies sollte meiner Meinung nach als Bug betrachtet werden.

Low priority bug, da er keine Produktionsseite beeinträchtigt. Und ich glaube nicht, dass jemand aus dem Team die Docker-Umgebung derzeit für die Entwicklung nutzt. Ich habe das Thema neu kategorisiert und das #pr-welcome-Tag darauf gesetzt.

4 „Gefällt mir“

Das funktioniert für mich:

Aber es gibt mehrere andere Möglichkeiten, dies zu beheben:

  • Umgebungseinstellung USER=discourse zum Docker-Boot-Image hinzufügen

  • -e USER=discourse \\ zu d\\exec hinzufügen

  • Dies zu backup_restore.rb hinzufügen

      if Rails.env.development?
        username = ENV["USER"] || "discourse"
      end
    

Außerdem gibt es ein neues Problem bei der Ausführung von d/discourse in der Docker-Dev-Umgebung:

$ d/discourse backup

<internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require': cannot load such file -- thor (LoadError)
        from <internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
        from script/discourse:4:in `<main>'

während d/bundle exec script/discourse backup funktioniert (siehe Patch).

Hallo @gerhard,

Ich bin auf dasselbe Problem gestoßen, das in diesem Thema erwähnt wird, und der obige PR hat mein Problem gelöst. Ich denke, dieser PR sollte wiedereröffnet und zusammengeführt werden.

1 „Gefällt mir“

Der PR ist nicht ideal, wir wollen nur dann einen Benutzer hinzufügen, wenn er explizit definiert ist. Das Erzwingen eines discourse-Benutzers in allen Entwicklungsumgebungen ist nicht richtig.

Ich kann diese Umgebungsvariable optional handhaben, wenn sie definiert ist.

2 „Gefällt mir“

Ich benutze nicht die Dev Docker-Umgebung, daher kann ich es nicht testen, aber vielleicht funktioniert das?\n\ndiff\n--- a/lib/backup_restore.rb\n+++ b/lib/backup_restore.rb\n@@ -135,7 +135,8 @@ module BackupRestore\n DatabaseConfiguration.new(\n config[\"backup_host\"] || config[\"host\"],\n config[\"backup_port\"] || config[\"port\"],\n- config[\"username\"] || username || ENV[\"USER\"] || \"postgres\",\n+ config[\"username\"] || username || ENV[\"USER\"] || ENV[\"DISCOURSE_DEV_DB_USERNAME\"] ||\n+ \"postgres\",\n config[\"password\"] || password,\n config[\"database\"],\n )\n\n\nWenn ja, erstelle bitte einen PR.

1 „Gefällt mir“

Wenn wir den Dev-Container-Ansatz verwenden, funktioniert das Hinzufügen von „USER“: „discourse“ im Abschnitt „remoteEnv“ und ermöglicht den Export der DB.