Posso restaurar sequências de visitas?

Olá,

Recentemente, meu fórum teve uma inatividade prolongada de 2 dias devido a problemas com nosso domínio.

Isso fez com que as sequências de visitas de todos fossem interrompidas, o que é muito ruim para a maioria das pessoas.

Estou procurando restaurá-las, como posso fazer isso?

1 curtida

Você precisaria se esforçar para adicionar dados às tabelas para que parecesse que todos visitaram nesses dias. Você precisaria ler a origem, descobrir a quais tabelas adicionar linhas e, em seguida, criar registros nelas para cada usuário.

Se você não souber como fazer isso e não obtiver uma resposta rápido o suficiente, pode postar um orçamento em Marketplace.

2 curtidas

Eles precisam definir suas prioridades corretamente :wink:

De qualquer forma, para copiar visitas de um dia para outro, você precisa executar esta consulta SQL

insert into user_visits
  select 0, user_id, '2022-09-09', posts_read, mobile, 0 
  from user_visits 
  where visited_at = '2022-09-08'
;

onde a primeira data é a data que você deseja falsificar e a segunda data é de onde você deseja copiar.

7 curtidas

Richard salva o dia novamente! Que ótima solução. Eu estava me perguntando como fazer isso sem apenas dar crédito a todos. Brilhante!

5 curtidas

Você ficaria chocado com a quantidade de pessoas que reclamaram disso :face_with_diagonal_mouth:

Obrigado pelo script, onde posso executá-lo?

2 curtidas
cd /var/discourse
./launcher enter app
rails c
DB.exec("insert into user_visits select 0, user_id, '2022-09-09', posts_read, mobile, 0 from user_visits where visited_at = '2022-09-08'")
4 curtidas

Ei, tivemos outro tempo de inatividade e, quando fui restaurar as visitas novamente, tivemos um erro.

[6] pry(main)> DB.exec("insert into user_visits select 4, user_id, '2022-12-31', posts_read, mobile, 0 from user_visits where visited_at = '2022-09-01'")
PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "user_visits_pkey"
DETAIL:  Key (id)=(4) already exists.

from /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `exec'