You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
tombos.fase_sucessional_id já existe, é anulável e o Sequelize associa o tombo à fase sucessional por essa coluna. No dump de integração (e no mesmo tipo de dump de produção) não há FOREIGN KEY nem índice nela.
A migration 20251117200002_add_fase_sucessional_tombo só cria coluna e FK se a coluna ainda não existir. No dump atual a coluna já está lá, então esse ramo nunca rodou. Depois de #488 a chave primária da fase é id; a FK que faltou precisa apontar para isso.
Em locais_coleta ainda existe fase_numero, nomeado pela PK antiga numero. Essa coluna continua com FK para fase_sucessional(id), em paralelo a fase_sucessional_id, que é a única referência usada pelo modelo e pelas telas.
Esta issue existe para o banco passar a garantir a referência do tombo que o modelo já assume, e para o local de coleta deixar de carregar a coluna cujo nome ainda é o numero da fase.
Fora de escopo
Alterar ou reescrever 20251117200002_add_fase_sucessional_tombo.
ON DELETE SET NULL ou ON UPDATE CASCADE na FK de tombos.
Cadastro, rename de nome ou exclusão de fases sucessionais.
Critérios de aceite
Tombo
Com a PK fase_sucessional.id já em vigor, passa a existir FK de tombos.fase_sucessional_id para fase_sucessional(id), sem reescrever migration já aplicada.
Essa FK usa ON UPDATE RESTRICT e ON DELETE RESTRICT.
Existe índice btree em tombos.fase_sucessional_id.
Órfãos (id não nulo sem fase correspondente) são anulados, ou a alteração de schema recusa e informa a quantidade, e a FK não fica pela metade.
fase_sucessional_id nulo no tombo continua permitido; valor que não existe em fase_sucessional passa a ser recusado pelo banco.
Local de coleta
Não resta em locais_coleta coluna cujo nome ainda seja o numero da fase (fase_numero).
A referência à fase no local de coleta fica só em fase_sucessional_id, com a FK atual para fase_sucessional(id) mantida.
Local que só tinha valor em fase_numero passa a tê-lo em fase_sucessional_id e continua apontando para a mesma fase.
Locais em que fase_numero e fase_sucessional_id divergem não são alterados em silêncio: a alteração recusa e informa a quantidade.
Comum
O dump de integração descreve o mesmo estado final; a suíte de integração continua carregando esse dump.
Tombos e locais de coleta que já apontavam para fases válidas por fase_sucessional_id continuam apontando para as mesmas linhas.
Seleção de fase sucessional no tombo e no local de coleta continua se comportando como hoje.
Visão geral
tombos.fase_sucessional_idjá existe, é anulável e o Sequelize associa o tombo à fase sucessional por essa coluna. No dump de integração (e no mesmo tipo de dump de produção) não háFOREIGN KEYnem índice nela.A migration
20251117200002_add_fase_sucessional_tombosó cria coluna e FK se a coluna ainda não existir. No dump atual a coluna já está lá, então esse ramo nunca rodou. Depois de #488 a chave primária da fase éid; a FK que faltou precisa apontar para isso.Em
locais_coletaainda existefase_numero, nomeado pela PK antiganumero. Essa coluna continua com FK parafase_sucessional(id), em paralelo afase_sucessional_id, que é a única referência usada pelo modelo e pelas telas.Esta issue existe para o banco passar a garantir a referência do tombo que o modelo já assume, e para o local de coleta deixar de carregar a coluna cujo nome ainda é o
numeroda fase.Fora de escopo
20251117200002_add_fase_sucessional_tombo.hcf-web.idjá segue Renomear colunanumeroparaidda fase sucessional #488.ON DELETE SET NULLouON UPDATE CASCADEna FK detombos.Critérios de aceite
Tombo
fase_sucessional.idjá em vigor, passa a existir FK detombos.fase_sucessional_idparafase_sucessional(id), sem reescrever migration já aplicada.ON UPDATE RESTRICTeON DELETE RESTRICT.tombos.fase_sucessional_id.fase_sucessional_idnulo no tombo continua permitido; valor que não existe emfase_sucessionalpassa a ser recusado pelo banco.Local de coleta
locais_coletacoluna cujo nome ainda seja onumeroda fase (fase_numero).fase_sucessional_id, com a FK atual parafase_sucessional(id)mantida.fase_numeropassa a tê-lo emfase_sucessional_ide continua apontando para a mesma fase.fase_numeroefase_sucessional_iddivergem não são alterados em silêncio: a alteração recusa e informa a quantidade.Comum
fase_sucessional_idcontinuam apontando para as mesmas linhas.Relacionadas
numeroparaidda fase sucessional #488 (PR Fix: A coluna numero da fase sucessional foi renomeada para id #508)