Я работаю над сценариями, которые применяют обновления схемы базы данных. Я установил все свои сценарии обновления SQL, используя стартовую транзакцию / фиксацию. Я передаю эти сценарии psql в командной строке.
Теперь мне нужно применить несколько сценариев одновременно и за одну транзакцию. Пока единственное решение, которое я придумала, это удалить стартовую транзакцию / коммит из исходного набора сценариев, а затем соединить их вместе в новом блоке стартовой транзакции / фиксации. Я пишу Perl-скрипты, чтобы сделать это на лету.
По сути, я хочу вложенные транзакции, которые я не могу понять, как это сделать в postgresql.
Есть ли способ сделать или смоделировать вложенные транзакции для этой цели? У меня есть настройки, которые автоматически выручают при любой ошибке, поэтому мне не нужно продолжать транзакцию верхнего уровня, если какая-либо из нижних транзакций не удалась.