phppgadmin liefert leere SQL-Dumps

Wenn phppgadmin kommentarlos leere SQL-Dumps liefert, kann das daran liegen, dass eine veraltete Kommandozeilenoption an pg_dump übergeben wird. In den Webserver-Logs finden sich dann Einträge wie

Die relevanten Dateien können sich von Version zu Version unterscheiden. Daher wird hier der Weg gezeigt: zunächst muss die richtige Stelle gefunden werden, an der phppgadmin die Option -d setzt.

Bei meiner Installation befindet sich der relevante Abschnitt in der Datei dbexport.php und beginnt bei Zeile 110. Dort steht:

[php]// […]
switch ($_REQUEST[‘what’]) {
case ‘dataonly’:
$cmd .= ‘ -a’;
if ($_REQUEST[‘d_format’] == ‘sql’)
$cmd .= ‘ -d’;
elseif (isset($_REQUEST[‘d_oids’]))
$cmd .= ‘ -o’;
break;
case ‘structureonly’:
$cmd .= ‘ -s’;
if (isset($_REQUEST[‘s_clean’]))
$cmd .= ‘ -c’;
break;
case ‘structureanddata’:
if ($_REQUEST[‘sd_format’] == ‘sql’)
$cmd .= ‘ -d’;
elseif (isset($_REQUEST[‘sd_oids’]))
$cmd .= ‘ -o’;
if (isset($_REQUEST[‘sd_clean’]))
$cmd .= ‘ -c’;
break;
}
// […][/php]

Damit der Export wie gewünscht funktioniert, muss an den zwei Stellen im Codeausschnitt -d durch –inserts entfernt werden.