Перш за все, я розробник, а не DBA або sysadmin; будь ласка, будь ласкавим :)
Я працюю над робочим процесом програми, де одна дія користувача спровокує складні зміни в базі даних - створення сотень записів в одних таблицях, оновлення сотень записів в інших тощо. Загалом, приблизно 12 таблиць (з ~ 100 ) торкаються цієї дії. Через складність мені дуже важко повернути всі зміни вручну, перш ніж я можу запустити черговий тест. Протягом більшої частини часу моєї розробки я можу просто вставити операцію "ROLLBACK" наприкінці робочого процесу, але коли я наближуюся до внесення змін, мені потрібно перевірити справжню річ.
У мене є локальна копія виробничої бази даних, з якою я працюю. У моєму випадку скидання та відновлення між тестами відбувається швидше, ніж написання сценарію, щоб скасувати всі зміни. Це швидше, але все одно мене дуже сповільнює (відновлення займає близько 20 хвилин на моєму старечому ноутбуці). Чи є спосіб я зберегти знімок поточного стану бази даних, а потім швидко відновити його?
Я гарантовано буду єдиним користувачем у системі, і у мене є кореневий доступ. Дамп бази даних становить ~ 100 МБ, коли таргується та gzip'ed. Версія PostgreSQL - 8.3.
Заздалегідь дякую за будь-які корисні ідеї.