.dump Datei als Datenbank einbinden

Hi Leute,

ich bin neu in der Postgre-SQL Welt und bin ein wenig ratlos. Ich bin im Besitz einer .dump Datei welches ich von einer Internetseite runtergeladen habe.
Dort heißt es :" […]verwendet eine PostgreSQL-Datenbank. Die Daten liegen deshalb als Dump im PostgreSQL 9.4.-Format bereit".

Da ich erst seit kurzem das DBMS von Postgre nutze weiß ich echt nicht wie ich diese Datei einspeise. Ich habe auf diversen Internetseiten Konsolenbefehle gesehen brachte mich jedoch nicht weiter. Kann mir jmd als absoluter Anfänger Schritt für Schritt sagen was ich zu tun habe…

Wäre echt toll wenn sich jmd die kurze Zeit nehmen würde.

MFG K.K

es gibt 2 formate, ist die datei direkt lesbar? dann via psql <db_name> < deine_datei.sql

Falls nicht: nutze pg_restore.

Emm…“psql <db_name> < deine_datei.sql”. Wo gebe ich das ein? und meine Datei ist doch .dump und nicht .sql

zu 2. wenn du mit pg_restore das in der Agent Maske meinst, das funzt nicht, der gibt dann folgende Fehlermeldung aus:

C:/Program Files/PostgreSQL/9.4/bin\pg_restore.exe --host localhost --port 5432 --username “postgres” --dbname “Historie” --role “postgres” --no-password --verbose “C:\Users\Desktop\history.dump\history.dump”
pg_restore: [Archivierer] Eingabedatei ist anscheinend ein Dump im Textformat. Bitte verwenden Sie psql.

Prozess beendete mit Exitcode 1.

Das geht in der Shell. Ob die Datei nun .sql oder .dump oder .eierkuchen heißt ist unerheblich.

zu 2. wenn du mit pg_restore das in der Agent Maske meinst, das funzt nicht, der gibt dann folgende Fehlermeldung aus:

C:/Program Files/PostgreSQL/9.4/bin\pg_restore.exe --host localhost --port 5432 --username “postgres” --dbname “Historie” --role “postgres” --no-password --verbose “C:\Users\Desktop\history.dump\history.dump”
pg_restore: [Archivierer] Eingabedatei ist anscheinend ein Dump im Textformat. Bitte verwenden Sie psql.

Prozess beendete mit Exitcode 1.

Na prima, steht doch alles da. Du hast also einen reinen ASCII-Dump, den Du nun mit psql einlesen kannst. PostgreSQL hat eigentlich sehr nützliche und zweckdienliche Hinweise bzw. Fehlermeldungen - ist ja nicht MySQL oder Windows oder so …

Also wenn ich die Shell öffne fragt der i-welche sachen zuerst :
Server [Localhost]: localhost
Database [postgres]: Historie
port[5432]: 5432
Username[postgres]: postgres
Passwort für Benutzer postgres: *****

Anschließend steht da:

Historie -# nun kann ich befehle eingeben und tue folgendes:

“Historie -# psql -h localhost -d Historie -U postgres -f history.dump” danach drücke ich Enter und es kommt
“Historie -#” …und nichts passiert noch nicht einmal eine Fehlermeldung

Mit Shell meinte ich NICHT die CLI von PostgreSQL (psql), sondern eine Shell des Betriebssystems.

ok das wäre dann bei Suchen “Eingabeaufforderung”
Befehl psql ist entweder falsch geschrieben oder konnte nicht gefunden werden…

Mir ist was aufgefallen. Ich habe die Datei “history.dump” in “history.sql” geändert und jetzt ist das mit dem postgresql icon drauf und wenn ich auf öffnen klicke steht da:

Server: localhost
Datenbank: Historie
Benutzername: postgres
Rollenname: postgres

dann drücke ich auf OK , dann kommt kurz ladebalken und dann passiert nix mehr

Ohne Dir zu nahe treten zu wollen: Du solltest erst mal lernen wie man mit der Kommandozeile arbeitet, bevor Du Dich an ein komplexes Thema wie die Administration einer Datenbank wagst.

P.S.: es heisst entweder Postgres oder PostgreSQL, niemals Postgre

ich habe kein Interesse daran eine Datenbank zu administrieren. Ich will lediglich die Daten anzeigen und auslesen können, mehr will ich doch garnicht. Aber es funktioniert nicht. Warum muss ich das mit der Kommandozeile tun ? Kann keiner mal erklären woran es liegt

Um mal Deine Aussagen zu kommentieren:

  • so eine Datenbank existiert nicht von selber. Irgendwer muß sie administrieren. Wenn Du das nicht machen willst oder kannst, dann gebe das in andere Hände. Zum Beispiel in unsere, wir hosten auch PostgreSQL-Datenbanken für unsere Kunden.
  • Du willst nur Daten anzeigen und auslesen können. versteh ich vollkommen. Aber was ist, wenn die Hardware mal abbrennt und Du aus einem Backup (Du machst doch Backups, oder?) die Daten wieder via Restore eingelesen werden sollen? Auch hier: wenn Dir das zuviel ist, an wen können wir ein Angebot schicken?
  • Warum das auf der Kommandozeile geht? Weil das (und nur das) effektiv ist, um es zu automatisieren.
  • Und ja: das IST alles super dokumentiert, PostgreSQL hat eine absolut super Doku. Und wenn es Dir zuviel ist, das Kapitel zu Dump & Restore zu lesen, dann beauftrage andere damit, die es gelesen & verstanden haben. Ja, das kostet dann auch Geld.

Was ist denn daran so schlimm?

alternativ musst Du den kompletten Pfad zu der Datei angeben: allerdings musst Du den Pfad mit / angeben, nicht mit :

super, danke dir. Habs endlich geschafft, ich habe den Pfad nicht eindeutig angegeben. Ich kenne mich in Linux mit dem klassischen Terminal gut aus, jedoch bin ich damit relativ unerfahren in Windows xD