Eu estou trabalhando em scripts que apliquem as atualizações de esquema de banco de dados. Eu setup todos os meus scripts de atualização SQL usando a transação start / commit. Eu passar esses scripts para o psql na linha de comando.
Agora eu preciso para aplicar vários scripts ao mesmo tempo, e em uma transação. Até agora, a única solução que eu vim acima com é remover a transação start / comprometer a partir do conjunto original de roteiros, em seguida, jam-los juntos dentro de uma nova transação start / comprometer bloco. Eu estou escrevendo scripts perl para fazer isso em tempo real.
Efetivamente eu quero transações aninhadas, o que eu não consigo descobrir como fazer no PostgreSQL.
Existe alguma maneira de fazer ou simular transações aninhadas para este fim? Eu tenho coisas configuração para salvar automaticamente em qualquer erro, então eu não preciso de continuar na transação nível superior se qualquer um dos mais baixos falhar.













