Kann ich Besuch-Streaks wiederherstellen?

Hallo,

Kürzlich hatte mein Forum aufgrund von Problemen mit unserer Domain eine 2-tägige Ausfallzeit.

Dies führte dazu, dass die Besuchsserien aller unterbrochen wurden, was für die meisten Leute sehr schlecht ist.

Ich möchte diese wiederherstellen, wie kann ich das tun?

Sie müssten Daten in die Tabellen einfügen, um es so aussehen zu lassen, als ob jeder an diesen Tagen teilgenommen hätte. Sie müssten die Quelle lesen, herausfinden, zu welchen Tabellen Zeilen hinzugefügt werden müssen, und dann für jeden Benutzer Datensätze erstellen.

Wenn Sie nicht wissen, wie das geht, und nicht schnell genug eine Antwort erhalten, können Sie ein Budget in Marketplace posten.

Sie müssen ihre Prioritäten richtig setzen :wink:

Um Besuche von einem Tag auf einen anderen zu kopieren, müssen Sie die folgende SQL-Abfrage ausführen:

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

wobei das erste Datum das Datum ist, das Sie fälschen möchten, und das zweite Datum das Datum ist, von dem Sie kopieren möchten.

Richard rettet wieder einmal den Tag! Was für eine großartige Lösung. Ich habe mich gefragt, wie man das machen kann, ohne allen Anerkennung zu zollen. Genial!

Du wärst schockiert, wie viele Leute sich darüber beschwert haben :face_with_diagonal_mouth:

Danke für das Skript, wo kann ich es ausführen?

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

Hey, wir hatten eine weitere Störung, und als ich die Besuche wiederherstellen wollte, gab es einen Fehler.

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