Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Converted places logic to database query #303

Merged
merged 2 commits into from
Oct 2, 2024

Conversation

sergiomario
Copy link
Contributor

@sergiomario sergiomario commented Sep 30, 2024

Contexto

Essa é uma implementação que visa testar se a lógica de carregamento de cidades e estados do Brasil fica mais performático se o carregamento for feito via banco de dados e não via leitura de arquivo. Atualmente os dados estão em um arquivo CSV.

Link da Tarefa/Issue

Requisitos

  • Remover lógica de carregamento de informações de Cep do arquivo CSV e levar para o SGDB.
  • Alterar visualização apenas da sigla da UF nas páginas públicas de busca e perfil.

Como testar?

  • Passo 1: Acessar o vote pelo clima (staging), com o dev tools do navegador aberto em network.
  • Passo 2: Abrir tela de busca de candidaturas ou cadastro e selecionar um estado no input referente
  • Passo 3: verificar em quantos segundos ou ms demora a carregar. as cidades quando é selecionado um estado. (O padrão tem sido perto de 500ms atualmente)

Notas de Deploy

Foi criada uma tabela nova dentro do database Bonde

CREATE TABLE places_ibge (
    uf CHAR(2),
    nome_uf VARCHAR(100),
    regiao_geografica_intermediaria VARCHAR(10),
    nome_regiao_geografica_intermediaria VARCHAR(100),
    regiao_geografica_imediata VARCHAR(10),
    nome_regiao_geografica_imediata VARCHAR(100),
    mesorregiao_geografica VARCHAR(10),
    nome_mesorregiao VARCHAR(100),
    microrregiao_geografica VARCHAR(10),
    nome_microrregiao VARCHAR(100),
    municipio VARCHAR(10),
    codigo_municipio_completo VARCHAR(10),
    nome_municipio VARCHAR(100),
    distrito VARCHAR(10),
    codigo_distrito_completo VARCHAR(15),
    nome_distrito VARCHAR(100),
    sigla_uf CHAR(2);
);

CREATE INDEX idx_uf ON places_ibge (uf);
CREATE INDEX idx_nome_uf ON places_ibge (nome_uf);
CREATE INDEX idx_sigla_uf ON places_ibge (sigla_uf);

\copy ibge_estados_cidades FROM '/path-to/nossas/cms/app/org_eleicoes/votepeloclima/candidature/csv/places.csv' DELIMITER ',' CSV HEADER;

UPDATE places_ibge
SET Sigla_UF = CASE 
    WHEN uf = '11' THEN 'RO'  -- Rondônia
    WHEN uf = '12' THEN 'AC'  -- Acre
    WHEN uf = '13' THEN 'AM'  -- Amazonas
    WHEN uf = '14' THEN 'RR'  -- Roraima
    WHEN uf = '15' THEN 'PA'  -- Pará
    WHEN uf = '16' THEN 'AP'  -- Amapá
    WHEN uf = '17' THEN 'TO'  -- Tocantins
    WHEN uf = '21' THEN 'MA'  -- Maranhão
    WHEN uf = '22' THEN 'PI'  -- Piauí
    WHEN uf = '23' THEN 'CE'  -- Ceará
    WHEN uf = '24' THEN 'RN'  -- Rio Grande do Norte
    WHEN uf = '25' THEN 'PB'  -- Paraíba
    WHEN uf = '26' THEN 'PE'  -- Pernambuco
    WHEN uf = '27' THEN 'AL'  -- Alagoas
    WHEN uf = '28' THEN 'SE'  -- Sergipe
    WHEN uf = '29' THEN 'BA'  -- Bahia
    WHEN uf = '31' THEN 'MG'  -- Minas Gerais
    WHEN uf = '32' THEN 'ES'  -- Espírito Santo
    WHEN uf = '33' THEN 'RJ'  -- Rio de Janeiro
    WHEN uf = '35' THEN 'SP'  -- São Paulo
    WHEN uf = '41' THEN 'PR'  -- Paraná
    WHEN uf = '42' THEN 'SC'  -- Santa Catarina
    WHEN uf = '43' THEN 'RS'  -- Rio Grande do Sul
    WHEN uf = '50' THEN 'MS'  -- Mato Grosso do Sul
    WHEN uf = '51' THEN 'MT'  -- Mato Grosso
    WHEN uf = '52' THEN 'GO'  -- Goiás
    WHEN uf = '53' THEN 'DF'  -- Distrito Federal
    ELSE NULL
END;

Copy link
Contributor

@igr-santos igr-santos left a comment

Choose a reason for hiding this comment

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

@sergiomario o Sigla_UF na query de migração não vai dar conflito com o nome padrão dos campos serem sempre minúsculo?

@sergiomario
Copy link
Contributor Author

@sergiomario o Sigla_UF na query de migração não vai dar conflito com o nome padrão dos campos serem sempre minúsculo?

Você tem razão Igor, eu nem tinha percebido. Mas aparentemente não tem problema (https://chatgpt.com/share/66fc2fa4-a214-8012-bbb9-d59dce24a3e1). Mesmo assim eu vou deixar tudo minúsculo para rodar em prod. Obrigado!

@sergiomario sergiomario merged commit e16b13f into release/votepeloclima-v2 Oct 2, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants