Skip to content

Fix: A coluna numero da fase sucessional foi renomeada para id - #508

Open
JosueModesto wants to merge 1 commit into
developmentfrom
488-renomear-coluna-numero-id-fase-sucessional
Open

Fix: A coluna numero da fase sucessional foi renomeada para id#508
JosueModesto wants to merge 1 commit into
developmentfrom
488-renomear-coluna-numero-id-fase-sucessional

Conversation

@JosueModesto

Copy link
Copy Markdown
Contributor

Close #488

Descrição

Foi realizada a migração e refatoração da tabela fase_sucessional para renomear a PK numero para id, alinhando a estrutura com os demais catálogos de paisagem (solos, relevos e vegetações) e atualizando o código legado e suas chaves estrangeiras.

O que mudou

  • ajusta o model de fase_sucessional
  • remove dependências legadas que consultavam numero
  • alinha a API e os pontos de negócio com o padrão { id, nome }
  • adiciona migration de compatibilidade para bancos que ainda possuem coluna antiga
  • atualiza o schema usado em testes de integração

Por que

fase_sucessional era o único catálogo de paisagem cujo identificador principal não seguia o padrão dos outros modelos. Isso criava exceções no código e dificultava a padronização da API nova.

Compatibilidade

  • os valores existentes não são alterados
    os seeds 7, 8 e 9 continuam com os mesmos números
  • a migration cobre o caso de banco ainda com numero
  • o código legado passa a consultar por id

Comment thread src/database/migration/20260826120203_rename_fase_sucessional_numero_to_id.ts Outdated
Comment thread src/database/migration/20251117200002_add_fase_sucessional_tombo.ts Outdated
Comment thread src/controllers/locais-coleta-controller.js
Comment thread test/integration/setup/schema.sql
@JosueModesto
JosueModesto force-pushed the 488-renomear-coluna-numero-id-fase-sucessional branch from c903587 to 029ed2c Compare August 28, 2026 13:19
@JosueModesto JosueModesto reopened this Aug 28, 2026
@@ -0,0 +1,31 @@
import { Knex } from 'knex'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JosueModesto eu tentei rodar esta migração com um dump de prod e deu este erro

$ tsx --env-file=.env src/database/cli.ts migration:apply
Error applying migration 20260826120203_rename_fase_sucessional_numero_to_id {"length":104,"name":"error","severity":"ERROR","code":"42P16","file":"tablecmds.c","line":"14158","routine":"dropconstraint_internal"}
/home/edvaldo/Workspace/Herbario/hcf-api/node_modules/pg-protocol/src/parser.ts:394
      : new DatabaseError(messageValue, LATEINIT_LENGTH, name)
        ^


error: alter table "fase_sucessional" alter column "id" drop not null - column "id" is in a primary key
    at parseErrorMessage (/home/edvaldo/Workspace/Herbario/hcf-api/node_modules/pg-protocol/src/parser.ts:394:9)
    at Parser.handlePacket (/home/edvaldo/Workspace/Herbario/hcf-api/node_modules/pg-protocol/src/parser.ts:212:19)
    at Parser.parse (/home/edvaldo/Workspace/Herbario/hcf-api/node_modules/pg-protocol/src/parser.ts:105:30)
    at Socket.<anonymous> (/home/edvaldo/Workspace/Herbario/hcf-api/node_modules/pg-protocol/src/index.ts:7:48)
    at Socket.emit (node:events:524:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  length: 104,
  severity: 'ERROR',
  code: '42P16',
  detail: undefined,
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'tablecmds.c',
  line: '14158',
  routine: 'dropconstraint_internal'
}

Node.js v22.13.1
error Command failed with exit code 1.

abaixo está o arquivo que eu usei

dump-herbario_dev-202608282142.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Renomear coluna numero para id da fase sucessional

2 participants