Conheci um estranho PostgreSQL ( v.13.8 ) em uma máquina Windows server 2019 hoje ao tentar restaurar um arquivo de despejo personalizado.
O seguinte comando funcionou:
pg_restore -d postgres://postgres@localhost:5432/postgres --no-owner --no-privileges --create --clean --role=<myuser> --if-exists inputfile.backup 2> inputfile.log
mas simplesmente adicionando a --single-transaction
opção à linha de comando, gerou um erro:
pg_restore -d postgres://postgres@localhost:5432/postgres --no-owner --no-privileges --single-transaction --create --clean --role=<myuser> --if-exists inputfile.backup 2> inputfile.log
Mas eu posso ler isso no arquivo de log:
pg_restore: error : options « -c/--clean » and « -a/--data-only » cannot be used together.
Eu nem usei a -a
bandeira... Isso é estranho, não é?
Eu li o pg_restore doc , especialmente o parágrafo sobre a --single-transaction
opção, mas não diz muito sobre isso (por exemplo, sobre um -a
sinalizador implícito subjacente):
--transação única
Execute a restauração como uma única transação (ou seja, envolva os comandos emitidos em BEGIN/COMMIT). Isso garante que todos os comandos sejam concluídos com êxito ou que nenhuma alteração seja aplicada. Esta opção implica --exit-on-error.
Alguém pode me dizer o que exatamente está acontecendo ao usar esta opção?
Eu não sei como você consegue que as mensagens de diferentes idiomas sejam usadas.
Mas há um erro óbvio de copiar e colar no arquivo de tradução francês src/bin/pg_dump/po/fr.po:
Bug relatado .