kısmını geri: Ben tüm veritabanını geri yüklemek için psql'i kullanabilirsiniz biliyorumPHP yedekleme tüm PostgreSQL veritabanı ve ardından tablonun
<?php
include_once("../db.php");
$password = getPGPassword();
$user = getPGUser();
$db = getPGDb();
putenv("PGPASSWORD=" . $password);
$dumpcmd = array("pg_dump", "-i", "-U", escapeshellarg($user), "-F", "c", "-b", "-v", "-f", escapeshellarg('/var/www/backups/backup-'.time().'.sql'), escapeshellarg($db));
exec(join(' ', $dumpcmd), $cmdout, $cmdresult);
putenv("PGPASSWORD");
?>
, ancak herhangi bir yol olduğunu Bir tablonun bir bölümünü seçerek sorguyu kullanarak geri yükleyebilir miyim? Düşündüğüm en basit şey, psql ile geçici bir veritabanı oluşturmak, istenen tablodan satırları okumak, ana seri anahtarına göre çakışan satırları silmek ve tabloya eklemek.
Bunu yapmanın daha iyi bir yolu var mı? Tam sql sorgu işlevine ihtiyacım var. Bence
Neden PHP'yi resmin içine getirdiniz? – e4c5
Kullanıcı arayüzüm ve yönetici arayüzüm var. Kullanıcı arayüzünden veritabanında değişiklik yapabilirsiniz. Yönetici arayüzünden bir PHP betiği kullanarak sadece bir satır geri yüklemek istiyorum, bu yüzden el ile/komut satırından yapılması gerekmiyor. – maxhud
Bu durumda, döküntünüzü 'düz' biçiminde yaparsanız, PHP betiğiniz, sizi ilgilendiren birincil anahtarı bulana ve yalnızca bu satırı ekleyene kadar dosya boyunca yineleyebilmelidir. – e4c5