Vingadores - Implementação do PostgreSQL nos sistemas que o time Vingadores mantém
Vingadores - Estudo de caso, da complexidade de alteração do banco de dados para PostGreSQL
Realizar um estudo de caso acerca da implementaçcomplexidade da alteração do banco de dados para o SGBD PostGreSQL nos sistemas que o time GuardiõesVingadores mantém
OBJETIVO
Avaliar a possibilidade de substituir o banco atual (SQLServer da Microsoft), conforme a User Story: “Eu como guardiões,vingadores, preciso realizar um estudo de caso, da complexidade de alterar o banco de dados de cada sistema que o time mantém"mantêm" presente na Sprint número 79 78 do time Guardiões.Vingadores.
JUSTIFICATIVA
Tendo em vista que o PostGreSQL é um banco de dados e SGBD relacional totalmente OpenSource, a SETIC detém o interesse em utilizar tais tecnologias para redução de custos a fim de colaborar na economia do Governo do Estado e incentivar a cultura OpenSource. Deste modo, a demanda para estudo de substituição de tecnologia foi realizada para avaliar os impactos que a nova tecnologia possivelmente trará.
RESULTADOS ESPERADOS
Implementar o PostGreSQL em um sistema que o GuardiõesVingadores mantém e verificar se as funções que são realizadas no SQLServer é possível também no PostGreSQL, como por exemplo, as Migrations.
1 - Instalar o pacote do PostGreSQL no sistema a ser utilizado (1 pontos)
2- Mudar connectionString no gitlab dos bancos (2 pontos );
3- Realizar a “compara” dos tipos de dados entre bancos (3 pontos)
ENVOLVIDOS:
JoãoAndré CíceroHonório Romãode Andrade da Silva (DEV Team)
Gustavo Felix Gomes (DEV Team)
Rafael Passos dos Santos (DEV Team)
Emanuel Rufino Alcantara de Oliveira
Raaby(Dev LiandryTeam)
Lucas de Souza Teixeira
WelingtonSousa Carvalho(Estagiário Gadelha
HenriqueTeam)
Gezinéia Oliveira
Andersonda CardosoCosta (Estagiária Product Owner)
Lucas Tavares Viana de Souza (Estagiário Scrum Master)
Gerente de Desenvolvimento:
Janderson de Castro Thomaz
Product Owner:
MariaEuriane LuizaNogueira CoelhoFrota Guimarães(Product Owner)
Scrum Master:
EdsonMoisés MasamiSantos HiraçakaRodrigues (Scrum Master)
GLOSSÁRIO:
PostGreSql- Banco de Dados relacional openSource com mais de 30 anos de desenvolvimento ativo ;
Migrations - A migração de dados é o processo de selecionar, preparar, extrair e transformar dados e transferi-los permanentemente de um sistema de armazenamento de computador para outro;
OpenSource - Código aberto é um modelo de desenvolvimento criado em 1998, que promove o licenciamento livre para o design ou esquematização de um produto, e a redistribuição universal desses, com a possibilidade, examinação ou modificação do produto.
1. INSTALAÇÃO
Para atender a necessidade precisamos realizar os seguintes passos especificados pela organização do PostgreSql, endereçadas no link abaixo:
Figura 1 - Escolha da plataforma para o .exe ser baixado e instalado..
Escolher a plataforma na qual será instalado o .exe.
Para rodar localmente é necessário realizar o download do driver Npgsql que será exibido ao final da instalação.
Figura 2 - Tela de instalação do plugin Npgsql v3.2.6-3 que deve ser instalado.
Logo após, é necessário realizar a Instalação do pacote para o provedor do banco de dados Postgresql, disponibilizado nos Nuggets do Visual Studio. O detalhamento deste passo é especificado também pelo PostgreSql no link abaixo:
Npgsql Entity Framework Core Provider | Npgsql Documentation
Figura 3 - Alteração no tipo de dado nas migrations da Atualização Cadastral.
2. ADAPTAÇÃO NO CÓDIGO
O outro procedimento realizado, foi a substituição dos lugares onde utilizam a connection string, que agora foi adaptada para receber o PostgreSql:
ConnectionStrings "Host=localhost;Port=5432;Database=dev.atualizacaocadastral.sistemas.ro.gov.br;Username=postgres;Password=senha!",
Após a alteração para a nova connectionstring, e prontos para rodar as Migrations, foi apontado um conflito em dados do tipo “DateTime”, que foi necessário modificar todos para .HasColumnType(“timestampz”). Essa diferença de dados foi o único identificado no sistema “atualização cadastral”, podendo ser encontrado mais diferenças durante a alteração de banco em outros tipos de dados.
Figura 4 - Alteração no tipo de dado nas migrations da Atualização Cadastral.
A especificação dos dados aceitos no SQL Server pode ser encontrada na documentação da Microsoft, em que salienta a classificação dos dados e os tipos dos mesmos. Conforme o link abaixo:
Tipos de dados (Transact-SQL) - SQL Server | Microsoft Docs
Os tipos de dados do PostgreSQL também são encontrados no link abaixo, conforme a organização mantenedora:
PostgreSQL: Documentation: 9.6: Data Types
Levando em consideração o conhecimento de ambas as documentações disponibilizadas pelas organizações mantenedoras dos bancos utilizados, é possível realizar o “compara” dos tipos de dados entre bancos quando houver conflitos durante a alteração de banco nos sistemas.
Figura 5 - Tabelas geradas do ‘Atualização Cadastral’ utilizando as migrations no PostgreSQL.
CONCLUSÃO
Realizada a análise e os testes com o banco PostgreSQL no sistema Atualização Cadastral, foi possível prever e implementar no ambiente local do sistema o PostgreSQL. Sendo o passo-a-passo especificado nos tópicos acima. Foram identificados algumas possíveis alterações em tipos de dados, instalação de pacotes do PostgreSql nos sistemas, alteração do banco em código e alteração de connectionString nos ambientes. Estimando-se, um total de 6 pontos para a alteração em cada sistema proposto.
REFERÊNCIAS
[1] MICROSOFT. DATA TYPES. 2019. Disponível em: Tipos de dados (Transact-SQL) - SQL Server | Microsoft Docs. Acesso em: 31 mai. 2021.
[2] POSTGRESQL. TIPOS DE DADOS (TRANSACT-SQL). 2020. Disponível em: PostgreSQL: Documentation: 9.6: Data Types. Acesso em: 31 mai. 2021.
[3] POSTGRESQL. Npgsql Entity Framework Core Provider. 2019. Disponível em: Npgsql Entity Framework Core Provider | Npgsql Documentation. Acesso em: 31 mai. 2021.
[4] POSTGRESQL. PostgreSQL Downloads. 2019. Disponível em: PostgreSQL: Documentation: 9.6: Data Types. Acesso em: 31 mai. 2021.