
11.11.2008, 12:19
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
То есть если сделать как ты предлагаешь, на момент запуска pg_dump.exe база будет содержать например 1000000 записей - 1000000 заархивируется, а когда после завершения работы я буду чистить таблицы, они будут содержать 1000253 записи => 253 записи будут утеряны.
тогда делай так: перед созданием архива получай количество записей в каждой таблице, затем выполняй pg_dump и по его завершении удаляй именно то число записей, которые имелось в таблице перед архивированием. Имхо задача решается небольшим sh-скриптом, где в массиве указаны все таблицы и в цикле для каждой выполняются три шага, описанных выше.
Примерно так:
Код:
count = $(echo "select count(*) from tablename;" | psql database -q -t);
# тут pg_dump
echo "delete from tablename limit $count;" | psql database -q -t;
Последний раз редактировалось [Raz0r]; 11.11.2008 в 12:23..
|
|
|