Zugriff auf Datenbank

I am trying to access my database via a GUI (Psequel).

I forwarded the port setting from my container as such:

app.yml:

expose:
  <standard definitions>
  - "15432:5432" # PostgreSQL

Also changed my password as such:

./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<your password>';

And I am unable to access the database. Any suggestions?
1 „Gefällt mir“

If you only need a static snap shot of the database then from https://<site>/admin/backups download a backup. It should be a *.tar.gz file and when uncompressed will be a *.sql file. Create a PostgreSQL database on another machine, which could even be your laptop, and then import the *.sql file.

Now you should be able to access the data all you want with any means that can connect to a PostgreSQL database.

I use the above but access the Discourse database in PostgreSQL via ODBC.

HTH

2 „Gefällt mir“

ok good idea.
Actually I figured it out. It runs on port 5432 also in the container.
it should read:
expose:

  • “5432:5432” # PostgreSQL

thanks

6 „Gefällt mir“

Hallo zusammen,

ich kann über pgadmin über die folgenden Schritte auf meine Postgres-DB zugreifen:

  • Entfernen Sie den Port-Expose-Code in Ihrer app.yml und bauen Sie die App neu.
  • Gehen Sie zu Ihrem Serververwaltungsportal (z. B. Digital Ocean, AWS usw.). Erstellen Sie eine Firewall-Regel, die Port 5432 öffnet.
  • Verwenden Sie den SSH-Tab von pgadmin: Melden Sie sich mit der Serveradresse und den Anmeldeinformationen bei Ihrem Server an.

Lassen Sie mich wissen, ob das für Sie funktioniert.

Mit freundlichen Grüßen,
Kimberly

@EricGT nie pomyślałem o tym! Dziękuję!! :slight_smile:

1 „Gefällt mir“

Hallo!

Ich wollte mich noch einmal bei Ihnen erkundigen. Wenn ich den dump.sql in eine PostgreSQL-Datenbank exportiere, sind die Tabellen leer. Es ist nicht klar, warum. Hier sind die Schritte, die ich nach dem Herunterladen der Sicherungsdatei befolge:

  1. pgAdmin öffnen
  2. Neue Datenbank erstellen
  3. Query Tool öffnen
  4. Im Query Tool ‘Öffnen’ verwenden und die Datei dump.sql auswählen
  5. Das Dump-Skript ausführen

Es wird angezeigt, dass alles erfolgreich war, aber wenn ich die Daten in den Tabellen “anzeigen” lasse, sind sie leer.

Außerdem ist es wahrscheinlich, wie die Instanz verwaltet wird, aber es scheint, dass die Benutzertabelle nicht enthalten ist, aber ich benötige diese Tabelle, um zu wissen, wer was getan hat.

Habe ich hier etwas übersehen? Danke!

Wie groß ist die dump.sql-Datei? Sie sollte beträchtlich sein (mindestens ein paar MB). Können Sie einen Blick in die Datei werfen? z. B.

$ zgrep -i "CREATE TABLE public.users" dump.sql.gz
# Ausgabe sollte sein
> CREATE TABLE public.users (

Wenn Sie dies nicht sehen, sieht der Dump falsch aus.

Wenn Sie uns auch Ihre Schritte zum Exportieren des Dumps mitteilen oder Ihre Konsolenausgabe hier einfügen, können wir Ihr Problem besser verstehen.

1 „Gefällt mir“

Vielen Dank! :slight_smile:

6,34 GB!

The image shows a line of SQL code on a terminal, attempting to use a file named "dump.sql" to express a CREATE TABLE statement. (Captioned by AI)

Um den Dump herunterzuladen, habe ich die oben von @EricGT vorgeschlagenen Schritte befolgt:

Danach habe ich diese Schritte befolgt:

Und dann, wenn ich die Daten anzeigen möchte, wird Folgendes angezeigt:

Habe das gerade noch einmal überprüft.

  1. Über die Admin-Seite https:///admin/backup wurde ein Download angefordert und die Schritte befolgt. Es gab mehrere Schritte, darunter die Verifizierung per E-Mail und das Herunterladen einer Datei.
  2. Die heruntergeladene Datei war eine gz-Datei, z. B. abc-2025-01-23-095947-v20250122131007.sql.gz. Unter Windows wurde die Datei mit 7-zip dekomprimiert, wodurch ein Verzeichnis mit demselben Namen, aber ohne .gz am Ende, erstellt wurde.
C:\Users\Groot\Downloads>dir *.sql.gz
23.01.2025  05:04 Uhr       407.213.170 abc-2025-01-23-095947-v20250122131007.sql.gz

C:\Users\Groot\Downloads>dir *.sql

23.01.2025  05:04 Uhr    <DIR>          abc-2025-01-23-095947-v20250122131007.sql
  1. Über eine Windows-Eingabeaufforderung, die auf das Verzeichnis mit der SQL-Datei geöffnet wurde, wurde die Existenz der SQL-Datei überprüft.
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>dir

23.01.2025  05:04 Uhr     1.572.346.154 abc-2025-01-23-095947-v20250122131007.sql
               1 Datei(en)  1.572.346.154 Bytes
  1. Über dieselbe Windows-Eingabeaufforderung wurde der Befehl zum Auflisten des Anfangs der SQL-Datei eingegeben.

type /a | more

C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>type "abc-2025-01-23-095947-v20250122131007.sql" /a | more

abc-2025-01-23-095947-v20250122131007.sql


--
-- PostgreSQL database dump
--

-- Dumped from database version 15.8 (Debian 15.8-1.pgdg110+1)
-- Dumped by pg_dump version 15.10 (Debian 15.10-1.pgdg120+1)

-- Started on 2025-01-23 09:59:47 UTC

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';

Hoffentlich reicht das aus, damit Sie die SQL-Datei mit PGAdmin zum Importieren der Daten verwenden können.


Hinweis

Als ich vor etwa 5 Jahren darüber gepostet habe, war der Dateityp des heruntergeladenen Files tar.gz, jetzt ist es sql.gz. Der einzige Unterschied ist, dass jetzt ein Dekomprimierungsschritt weniger benötigt wird.

2 „Gefällt mir“

Hallo @EricGT

Vielen Dank für deine Hilfe! Ich habe alle Schritte befolgt (mit einem zusätzlichen, da meine Datei immer noch tar.gz hat). Ich habe das gleiche Ergebnis mit der SQL-Datei erzielt:

--
-- PostgreSQL database dump
--
.........
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';

Das Problem ist jedoch, dass, wenn ich PgAdmin verwende, um die Daten abzurufen, alle Tabellen leer sind und die Benutzertabelle fehlt.

Es tut mir leid, ich kann nicht mit PgAdmin helfen. Ich benutze PgAdmin nicht und müsste es installieren, um es auszuprobieren. Die Installation von PgAdmin ist kein Schritt, den ich unternehmen möchte.

Das einzige Mal, dass ich auf eine exportierte Discourse-Datenbank zugegriffen habe, war, um PostgreSQL, odbc-postgresql zu installieren und iusql zu verwenden, wie hier hier erwähnt.

1 „Gefällt mir“

Vielen Dank für all Ihre Hilfe! Ich weiß es wirklich zu schätzen. Es stellte sich heraus, dass ich versuchte, die neueste PostgreSQL-Version zu verwenden, während dump.sql von einer früheren Version stammte. Das habe ich herausgefunden, als ich versuchte, dem Leitfaden zu folgen, den Sie verwendet haben. Vielen Dank!

1 „Gefällt mir“