방문 연속 기록을 복원할 수 있을까요?

안녕하세요,

최근 도메인 문제로 인해 포럼이 2일간 장시간 접속이 중단되었습니다.

이로 인해 모든 사용자의 방문 연속 기록이 끊겨서, 대부분의 회원들에게 큰 문제가 되었습니다.

이 기록을 복구하고 싶은데, 어떻게 해야 할까요?

그날들마다 모든 사람이 방문한 것처럼 보이게 하려면 테이블에 데이터를 조작해서 추가해야 합니다. 소스 코드를 읽고 어떤 테이블에 행을 추가해야 하는지 파악한 후, 각 사용자에 대해 해당 테이블에 레코드를 생성해야 합니다.

이 방법을 모르고 빠르게 답변을 받지 못한다면 #marketplace에 예산을 게시할 수 있습니다.

우선순위를 제대로 잡아야 합니다 :wink:

어쨌든, 방문 기록을 하루에서 다른 하루로 복사하려면 다음 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'
;

여기서 첫 번째 날짜는 가짜로 만들려는 날짜이고, 두 번째 날짜는 복사할 원본 날짜입니다.

리처드가 또 한 번 위기를 해결했네요! 정말 훌륭한 해결책입니다. 모든 사람에게 크레딧을 부여하지 않고 어떻게 해야 할지 궁금했는데, 정말 탁월합니다!

그걸 불평한 사람들이 얼마나 많은지 보면 놀랄 거예요 :face_with_diagonal_mouth:

스크립트 감사합니다. 어디서 실행할 수 있나요?

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'")

안녕하세요, 또 장애가 발생했는데, 방문 기록을 다시 복원하려고 했더니 오류가 발생했습니다.

[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'