Acho que aqui tem um bom exemplo disso:<br><br><a href="http://pgdocptbr.sourceforge.net/pg80/plpgsql-trigger.html">http://pgdocptbr.sourceforge.net/pg80/plpgsql-trigger.html</a><br><a href="http://www.postgresql.org/docs/8.4/interactive/plpgsql-trigger.html">http://www.postgresql.org/docs/8.4/interactive/plpgsql-trigger.html</a><br>
<br clear="all">Diego Moreira Carvalho <br><br>
<br><br><div class="gmail_quote">Em 1 de setembro de 2011 11:51, Pedro Costa <span dir="ltr"><<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div bgcolor="#FFFFFF" text="#000000">
Caro Diego ajudou.<br>
<br>
Diga-me só uma coisa, existe alguma variável que armazene o tipo de
operação (insert, update, delete)?<div><div></div><div class="h5"><br>
<br>
<br>
<br>
<br>
<br>
On 01-09-2011 13:28, Diego Moreira wrote:
<blockquote type="cite">Bom dia Pedro,<br>
<br>
Este é um tema bem interessante, acredito que para todos que tem
sobre sua responsabilidade uma base de dados que pode ser editada
por várias pessoas.<br>
Infelizmente ou felizmente aqui onde trabalho tenho uma EUquipe.
Portanto, nunca senti a necessidade de implementar um mecanismo
destes.... Mas já pensei e conversei com algumas pessoas sobre.<br>
<br>
Vai a minha sugestão:<br>
<br>
Criação de arquivo de log:<br>
<br>
Assim como algumas aplicações corporativas, tipo as bancárias que
precisam manter um histórico das transações para cada conta,
acredito que uma solução interessante seria criar uma tabela que
armazenasse estas informações ao invés de usar o log do PG.<br>
É bem simples, basicamente funcionaria assim:<br>
<br>
Você teria uma tabela com os (possíveis) seguintes dados<br>
ID; <br>
USUÁRIO; nome do usuário<br>
DATAHORA; data e hora da alteração<br>
OPERACAO; tipo de operação (REMOVE, INSERT, UPDATE)<br>
TABLE; nome da tabela que esta sendo alterada<br>
OLD_FEATURE; campo não deve ser obrigatória( para o casa de
insert); Concatenação das colunas da tabela que esta sendo
alterada<br>
NEW_FEATURE; Concatenação das colunas da tabela que esta sendo
alterada<br>
<br>
Vc criaria uma trigger para a tabela em que ocorre as edições que
seria acionada toda da vez ocorresse alguma alteração (REMOVE,
INSERT, UPDATE).<br>
Com relação a oldFeature e newFeature, não coloquei geometry, por
que pode ser interessante armazenar as alterações dos dados
alfanuméricos tbm.<br>
<br>
Acho que a idéia é mais ou menos esta.<br>
<br>
Ah... Caso exista uma tabela com as informações de onde cada
usuário pode editar vc pode testar isso primeiro... e não deixar
inserir ou alterar por que está em uma área em que o usuário não
tem permissão...<br>
<br>
Com relação ao backup... de uma olhada aqui<br>
<a href="http://postgrecenter.pgopen.com.br/automatizando-rotinas-de-backup-e-vacuum-no-postgresql-crontab/" target="_blank">http://postgrecenter.pgopen.com.br/automatizando-rotinas-de-backup-e-vacuum-no-postgresql-crontab/</a><br>
<br>
Espero ter sido útil...<br>
<br>
<br clear="all">
Diego Moreira Carvalho <br>
<br>
<br>
<br>
<div class="gmail_quote">Em 1 de setembro de 2011 08:21, Giovanni
Manghi <span dir="ltr"><<a href="mailto:giovanni.manghi@gmail.com" target="_blank">giovanni.manghi@gmail.com</a>></span>
escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>> . No entanto eu gostava de saber se é
possível<br>
> configurar com o pgadmin III (o cliente que uso) ou
pela shell (uso o<br>
> ubuntu) a criação de um arquivo log que memorize as
alterações que cada<br>
> utilizador faz e também a que horas e dia. Pretendia
também saber se é<br>
> possível agendar backups quando alteramos uma base de
dados.<br>
<br>
<br>
</div>
<a href="http://www.postgresql.org/docs/8.4/static/runtime-config-logging.html" target="_blank">http://www.postgresql.org/docs/8.4/static/runtime-config-logging.html</a><br>
<br>
<a href="http://www.postgresql.org/docs/8.4/interactive/backup-dump.html" target="_blank">http://www.postgresql.org/docs/8.4/interactive/backup-dump.html</a><br>
<br>
<a href="http://www.postgresql.org/docs/8.4/static/triggers.html" target="_blank">http://www.postgresql.org/docs/8.4/static/triggers.html</a><br>
<div>
<div><br>
<br>
_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Portugal mailing list
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
<br></blockquote></div><br>