Olá a todos, tenho um problema estranho com um fórum que mantenho.
Durante uma atualização, na página admin/upgrade ou no terminal, ela falhou e apresentei este erro:
--------------------------------------------------------------------------------
1 migração falhou!
Falha ao migrar o padrão
#<ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERRO: valor de chave duplicada viola a restrição de unicidade "index_screened_ip_addresses_on_ip_address"
DETALHE: A chave (ip_address)=(10.0.0.0/8) já existe.
Felizmente, não quebrei o fórum; com o comando ./launcher restart app (./launcher destroy app / ./launcher start app me salvou uma vez quando tive uma página em branco após um reinício), então não há nenhuma emergência, por isso gostaria de alguma orientação.
Decidi inspecionar o banco de dados. Tenho algumas referências ao IP 10.0.0.0/8 que parecem ser alguns logs, mas na tabela screened_ip_addresses, não tenho nenhuma duplicata.
--
-- Entrada do TOC 6829 (classe 0 OID 382198)
-- Dependências: 657
-- Dados para Nome: screened_ip_addresses; Tipo: TABLE DATA; Esquema: public; Proprietário: -
--
COPY public.screened_ip_addresses (id, ip_address, action_type, match_count, last_match_at, created_at, updated_at) FROM stdin;
236 10.0.0.0/8 2 0 \N 2020-05-24 19:44:41.587257 2020-05-24 19:44:41.587257
237 192.168.0.0/16 2 0 \N 2020-05-24 19:44:47.150337 2020-05-24 19:44:47.150337
239 172.16.0.0/12 2 0 \N 2020-05-24 19:44:57.347656 2020-05-24 19:44:57.347656
240 fc00::/7 2 0 \N 2020-05-24 19:45:02.270948 2020-05-24 19:45:02.270948
261 154.71.107.147 1 0 \N 2020-06-05 13:15:17.718236 2020-06-07 00:27:57.204765
257 154.126.107.81 1 0 \N 2020-06-02 09:51:31.191431 2020-06-07 00:27:58.538628
259 197.1.186.242 1 0 \N 2020-06-05 08:39:52.218198 2020-06-07 00:27:58.985867
258 89.158.72.7 1 0 \N 2020-06-02 20:44:41.584317 2020-06-07 00:27:59.542337
260 196.179.229.13 1 0 \N 2020-06-05 08:39:52.227515 2020-06-07 00:28:00.288445
238 127.0.0.0/8 2 0 \N 2020-05-24 19:44:52.369958 2020-05-24 19:44:52.369958
O administrador do fórum me disse que limpou alguns IPs na página /admin/logs/screened_ip_addresses e adicionou alguns. Mas duvido que ele tenha tocado neste IP. O estranho é que diz que o IP foi adicionado há 14 dias (foi a última vez que atualizei, e provavelmente foi a atualização do PostgreSQL), embora o fórum seja de 2015. E em outros fóruns, ele verifica com a data de criação.
Então, acho que a tabela está um pouco bagunçada, mas não parece realmente ser o caso.
Não quero tentar a sorte demais, especialmente porque sou péssimo em SQL. Por isso, queria alguma orientação sobre o procedimento a seguir para garantir que posso atualizar com segurança ![]()
Devo limpar a página /admin/logs/screened_ip_addresses, tentar purgar entradas desta tabela ou de outra?
