Implementação do PostgreSQL
João Cícero Romão Gomes de Oliveira Raaby Liandry de Souza Teixeira Implementação: Avaliar a possibilidade de substituir o banco atual (SQLServer da Microsoft), conforme a User Story: “Eu como guardiões, preciso realizar um estudo de caso, da complexidade de alterar o banco de dados de cada sistema que o time mantém" presente na Sprint número 79 do time Guardiões. 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á. Implementar o PostGreSQL em um sistema que o Guardiões 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) 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. 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. 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. 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. [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.Data:
Data de elaboração
08/06/21
Autores:
Responsável pelo estudo
1.Objetivo
Equipe do estudo
Guardiões da Galáxia
Alvo
Todos os sistemas sob a responsablidade do time Guardiões da Galáxia
Origem
Objetivo
Trocar o banco de dados utilizado de SQL SERVER para PostgreSQL
Observações
Foi necessário fazer todo o estudo de como fazer a migração de dados entre bancos
2.1. Introdução3.2. Desenvolvimento3.2.1 Resultado da Pesquisa3.2.2 INSTALAÇÃO3.2.3 ADAPTAÇÃO NO CÓDIGO4.3. Conclusão5.4. Referências