Pular para o conteúdo
Siglata Docs
Esc
↑↓navegar↵abrir⌘Jpré-visualizar
Nesta página

Histórico e lixeira

O Histórico guarda cada mudança de linha nos Registros com desfazer, e a lixeira guarda tabelas e colunas apagadas por 30 dias.

Histórico

Cada linha que records_change acrescenta, muda ou apaga nos Registros fica no Histórico como uma mudança, com a pessoa, o agente, a tabela, a mudança e os valores de antes e depois. history_list mostra três listas, da mais nova à mais antiga: as mudanças (entries), as ações (actions: cada chamada de records_change, cada desfazer e cada ida para a lixeira) e os itens da lixeira (trash).

Desfazer

history_undo desfaz mudanças de linhas, e só elas:

  • Com entry, desfaz a mudança de uma linha.
  • Com action, desfaz cada mudança de linha que uma chamada de records_change fez, da mais nova à mais antiga. Uma chamada que não mudou nenhuma linha, como CREATE TABLE ou ALTER TABLE, não tem o que desfazer e é recusada com 42704.
  • A tabela precisa de chave primária: o desfazer encontra a linha por ela. Numa tabela sem chave primária, o desfazer é recusado com 55000. Ele também é recusado com 55000 quando a mudança alterou o valor de uma coluna GENERATED ALWAYS AS IDENTITY; uma coluna GENERATED BY DEFAULT AS IDENTITY não impede o desfazer.
  • Quando uma mudança mais nova tocou a mesma linha, o desfazer é recusado com 40001; desfaça as mais novas primeiro. Desfazer de novo o que já foi desfeito responde already_undone.

Mudanças na estrutura de uma tabela, como criar uma tabela ou acrescentar uma coluna, não se desfazem. Uma tabela ou coluna apagada com as funções abaixo volta pela lixeira, não pelo desfazer.

Lixeira

Os Registros recusam DROP TABLE e DROP COLUMN. Para apagar uma tabela, use SELECT siglata.drop_table('tabela'); para apagar uma coluna, SELECT siglata.drop_column('tabela', 'coluna'). A tabela ou a coluna vai para a lixeira e aparece em history_list com kind: "trash".

history_undo com trash traz o item de volta. Trazer de volta um item que já voltou responde already_restored. A lixeira guarda cada item por 30 dias; depois disso, a Siglata o apaga de vez.

Última atualização em

Esta página foi útil?