我使用pg_dump的當前備份整個數據庫的一部分:PHP備份整個PostgreSQL數據庫,然後恢復表
<?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");
?>
我知道我可以使用PSQL恢復整個數據庫,但有什麼辦法我可以選擇性地使用查詢恢復表的一部分?我能想到的最簡單的事情是用psql創建一個臨時數據庫,從所需的表中讀取行,根據主要序列鍵刪除衝突的行,然後插入表中。
有沒有更好的方法來做到這一點?我需要完整的SQL查詢功能。
爲什麼要將PHP帶入圖片? – e4c5
我有一個用戶界面和一個管理界面。從用戶界面可以更改數據庫。從管理界面我希望能夠使用PHP腳本恢復一行,因此不必手動/從命令行完成。 – maxhud
在這種情況下,如果您以'純文本'格式創建轉儲文件,則PHP腳本應能夠遍歷文件,直到找到感興趣的主鍵並僅插入該行。 – e4c5