Ir para o conteúdo principal

Atualização .Net5 para .Net6 com banco Postgres

Objetivo

O objetivo deste estudo é analisar o impacto deem atualizar asa rotasversão do e-EstadoNet. dentro5 dopara Simeron.Net 6. Devido as mudanças no Npgsql 6.0.

Introdução

Dentro deste estudo, será identificadopontuada as funcionalidadesmudanças que poderãocorrerão no Npgsql 6.0 e o que terá que mudar no código para atender.

Principal mudança Npgsql 6.0

Melhorias de timestamp

  • Suporte para timestamp with time zonetimestamp without time zonefoi racionalizado e simplificado e alinhado com as melhores práticas do PostgreSQL. Em particular, o padrão "UTC em todos os lugares" é muito melhor suportado por meio do timestamp with time zonetipo PostgreSQL, que é a maneira recomendada de lidar com timestamps. Uma explicação detalhada está disponível nesta postagem do blog , abaixo está um resumo das principais melhorias.

    • Os carimbos de data/hora UTC foram claramente separados dos carimbos de data/hora não-UTC, alinhando-se com os tipos do PostgreSQL. Os primeiros são representados por timestamp with time zonee DateTime com Kind UTC, os últimos por timestamp without time zonee DateTime com Kind Local ou Unspecified. Recomenda-se usar carimbos de data/hora UTC sempre que possível.
    • O Npgsql não executa mais nenhuma conversão implícita de fuso horário ao ler ou gravar qualquer valor de carimbo de data / hora - o valor no banco de dados é o que você obtém e o fuso horário da máquina não desempenha mais nenhum papel ao ler/gravar valores.
    • O Npgsql não suporta mais representações de data/hora que não podem ser impactadastotalmente pelarodadas atualizaçpara o banco de dados. Se não puder ser totalmente armazenado como está, você não poderá gravá-lo.
    • Uma opção.o Alémde disso,compatibilidade serápermite determinadodesativar o novo comportamento para manter a compatibilidade com versões anteriores.

O texto acima foi retirado https://www.npgsql.org/efcore/release-notes/6.0.html?tabs=annotations click no link para mais detalhes.

Mudança necessárias no código do Simeron

Antes da versão 6.0 do Npgsql, as storiaspropriedade paracom efetivaro tipo DateTime eram mapeadas pelo entity framework como "timestamp without time zone" -> 2020-01-01 12:00:00 e adicionava o tipo timespamp no banco de dados, após a atualização juntoo comTipo DateTime passou a pontuaçãser mapeado pelo entity framework "timestamp with time zone" -> 2020-01-01 12:00:00+02 e adiciona o (esforço/complexidadetipo timespampz no banco de implementar).dados.

Funcionalidades impactadas

As que consomem a antiga API do e-Estado:Captura de tela 2022-07-18 090610.png

  • Aviso de Retirada
  • Listagens de Solicitações (Minhas e Recebidas)
  • Consulta de Estoque
  • Dashboard Painel
  • Criar e Editar Solicitação
  • Aviso de Vencimento
  • Aviso de Estoque
  • Configurações de Medicamentos
  • Consulta de Medicamentos
  • Definir limite de Medicamentos
  • Listagens de Ordem de Separação
  • Detalhes da Ordem de Separação

Conclusão

FoiTodos identificadoo ascampo storiascriado ecom pontuaçDateTime  no Npgsql 6.0. deve conter a marcação de fuso horário, para realizarque anão alteraçocorra erro na comunicação:o com o banco de dados.

  • Eu, como Tambaqui, preciso atualizar a rota da API do e-Estado utilizada no Simeron (pois a atual rota será descontinuada) - 8 pts

Superintendente
Delner Freire

Diretor
Maico Moreira da Silva

Gerente de Desenvolvimento
JandersonJonatas deJustiniano Castro ThomazLima

Product Owner
AdrianoGabriel BonazoniSanti Sol Sol de OliveiraBinda

Scrum Master
Wagner Moreira Melo

Time de Desenvolvimento
TambaquisTambakiss

Membros do Time Tambaqui
AdrianoAdelle BonazoniCamarão Sol Sol de OliveiraMonteiro
GabrielElias Santi Binda
Taillon Miguel GonçalvesBraga
Raissa de Sousa Stolduski
Taillon Miguel Gonçalves
Vinicius Da Rosa Pereira
Wagner Moreira Melo