public function export($what = 'structureanddata')
{
if (empty($what)) {
$what = 'structureanddata';
}
$exe = escapeshellcmd('/usr/bin/pg_dump');
$parameters = $this->getAdapter()->getDriver()->getConnection()->getConnectionParameters();
// Set environmental variables that pg_dump uses
putenv('PGPASSWORD=' . $parameters['password']);
putenv('PGUSER=' . $parameters['username']);
putenv('PGDATABASE=' . $parameters['database']);
if (!empty($parameters['hostname'])) {
putenv('PGHOST=' . $parameters['hostname']);
}
if (!empty($parameters['port'])) {
putenv('PGPORT=' . $parameters['port']);
}
//Prepare command
$cmd = $exe;
$cmd .= ' --compress 9 --no-owner --disable-triggers';
switch ($what) {
case 'dataonly':
$cmd .= ' --data-only';
$cmd .= ' --column-inserts';
break;
case 'structureonly':
$cmd .= ' --schema-only';
$cmd .= ' --clean';
break;
case 'structureanddata':
$cmd .= ' --column-inserts';
$cmd .= ' --clean';
break;
}
// Execute command and return the output
ob_start();
passthru($cmd . ' 2>/dev/null');
return ob_get_clean();
}