Копіювання данних postgres
Деколи потрібно зробити фінт вухами.
Відновити частину данних залежно від якихось умов…. з резервної бази.
Наприклад наша база
/var/db/pgsql/data
бєкапну копію кладем
/var/db/pgsql/data2
# echo "postgresql_data=\"/var/db/pgsql/data2/\"" >> /etc/rc.conf
# /usr/local/etc/rc.d/postgresql.sh restart
#psql -h localhost -U pgsql
Робимо тимчасову таблицю згідно нашої умови.
Я так зробив, щоб можна було перевірити або підкорегувати данні.
=>CREATE TEMP TABLE foo_bar AS SELECT * FROM table WHERE <умова>;
=>\copy foo_bar to '/var/db/pgsql/copytest.csv' DELIMITERS '|' WITH NULL AS 'null' CSV quote as '"'
=>\q
Видаляємо з таблиці ‘\r’….
#tr -d '\r' < copytest.csv >copytest1.csv ; rm copytest.csv
Підключаєм стару базу, рестартуєм
#psql -h localhost -U pgsql
=>\copy client from ‘/var/db/pgsql/copytest1.csv’ DELIMITERS ‘|’ WITH NULL AS ‘null’ CSV quote as ‘”‘