Ankündigung

Einklappen
Keine Ankündigung bisher.

Postgres Datenbank Dump und Restore aus PHP Skript

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Postgres Datenbank Dump und Restore aus PHP Skript

    Hallo,

    ich möchte aus einem PHP-Skript herraus ein DB-Dump einer Postgres (v.8 ) Datenbank machen. Für den Zugriff auf die DB sind Benutzername und Passwort erforderlich. Ich denke, dass ich es grob so machen werde, dass ich den pg_dump Befehl über den system Aufruf in PHP absetzen werde. Selbiges habe ich auch für den Restore geplant.
    Dabei ist mir jedoch noch nicht ganz klar wie ich hier das Passwort für den Zugang unterbringe. Bisher habe ich die Dumps über Kommandozeile ausgeführt und dabei das Passwort nach dem Aufruf von pg_dump eingeben müssen.

    Die Datenbank läuft auf einem Windows XP Server, mit Apache 2 und PHP4.

    Hat jemand dazu eine Idee ? Geht das ganze überhaupt aus einem PHP-Skript herraus ?

    Bin für Tips dankbar !
    Grüßle
    Ernst

  • #2
    system(); ?

    Kommentar


    • #3
      Mit system() garantiert nicht. Mit popen() vielleicht, mit ssh geht es AFAIK nicht, weil das die Tastenanschläge direkt abgreift und nicht auf stdin lauscht.
      mod = master of disaster

      Kommentar


      • #4
        Danke für die Antworten, aber das Thema hat sich erledigt.
        Ich habe es selber hin bekommen:

        pg_dump oder pg_restore mit dem system Befehlt in PHP aufgerufen und vorher mit putenv die Umgebungsvariablen für den DB-Username und Passwort definiert. Läuft einwandfrei.

        Grüßle
        Ernst

        Kommentar


        • #5
          So gehts:

          Hi,

          für alle die es interessiert hier meine Lösung:

          Code:
          $pg_dump    = 'path1\pg_dump.exe';
          $dump_file  = 'path2\dump.sql';
          $db_user    = 'username';
          $db_pass    = 'password';
          $db_dbname  = 'dbname';
          
          putenv('PGPASSWORD=' . $db_pass);
          putenv('PGUSER=' . $db_user);
          
          system($pg_dump.' '.$db_dbname.' > '.$dump_file);
          Für pg_dump müssen halt noch die gewünschten Parameter gesetzt werden. Ein Restore mit pg_restore funktioniert nach dem gleichen Schema.

          Grüßle
          Ernst

          Kommentar

          Lädt...
          X