Wie kann ich die aktuelle Versionsinformation aus meinem Backup erhalten?

Wie im Titel erwähnt, wurde mein VPS angegriffen. Ich habe versucht, die aktuelle Version von Discourse durch Ausführen von ./discourse-doctor zu ermitteln, aber es ist fehlgeschlagen.

Glücklicherweise hatte ich ein Backup auf meinem lokalen Rechner heruntergeladen.
Wie kann ich die aktuelle Versionsinformation aus diesem Backup abrufen?
Danke.

2 „Gefällt mir“

Welches Problem versuchen Sie zu lösen? Sie können das Backup auf jede neuere Version wiederherstellen.

4 „Gefällt mir“

Ich plane, das Betriebssystem neu zu installieren und dann die vorherige Version von Discourse einzurichten, um Kompatibilitätsprobleme mit Plugins zu vermeiden.

Übrigens, wenn ein VPS gehackt wurde, ist es dann noch möglich, das Discourse zu sichern? Ich habe nur eine automatische Sicherung von vor einigen Tagen.

Das hängt davon ab, in welchem Zustand sie es hinterlassen haben. Sie könnten versuchen, über die Rails-Konsole zu gehen:

cd /var/discourse 
./launcher enter app
discourse backup
cd public/backups/default
scp * user@destination.example.com:

Ihr Sicherungsdateiname hat das Format forumname-2025-05-22-151843-v20250521053324.tar.gz

Der lange String am Ende ist die letzte ausgeführte Migration.

Um herauszufinden, zu welchem Commit er gehört,

cd /var/www/discourse
git blame db/migrate/20250521053324*

Sie sehen nun eine Ausgabe und die linke Spalte enthält den Commit-Hash.
Dies ist der minimale Commit, auf dem Ihr neues Forum sein sollte.

(Manchmal gehört der Commit zu einem Plugin. In diesem Fall verwenden Sie locate, um das Plugin zu finden, wechseln Sie in sein Verzeichnis und führen Sie den gleichen git blame-Befehl aus.)

8 „Gefällt mir“

Ich würde empfehlen, einfach auf die neueste Version zu aktualisieren. Es ist am einfachsten und birgt kein Risiko. Wenn es nicht funktioniert, kannst du die ausgezeichneten Anweisungen befolgen, um den Commit zu finden und zu diesem zurückzukehren (und wirst du auch jeden der Plugins auf einen bestimmten Commit wiederherstellen?).

1 „Gefällt mir“

Ich habe versucht, eine Sicherung durchzuführen, aber sie ist fehlgeschlagen. Die Ausgabe ist wie folgt:

# cd /var/discourse/
/var/discourse# ./launcher enter app
x86_64 Architektur erkannt.
/var/www/discourse# discourse backup
Starte Sicherung...
AUFMERKSAMKEIT: BackupRestore::OperationRunningError
/var/www/discourse/lib/backup_restore/backuper.rb:70:in `ensure_no_operation_is_running'
/var/www/discourse/lib/backup_restore/backuper.rb:22:in `run'
script/discourse:84:in `backup'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/base.rb:584:in `start'
script/discourse:290:in `op (erforderlich)e'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli.rb:451:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/exe/bundle:28:in `block in op (erforderlich)e'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.5.3/exe/bundle:20:in `op (erforderlich)e'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `main'
Löschen alter Backups...
Aufräumen...
Entfernen von '.tar'-Resten...
Backup als beendet markieren...
Benachrichtigung an 'system' über das Ende des Backups...
Fertig!
[FAILED]

Bedeutet das, dass ich kein Backup mehr durchführen kann?

Es wird angenommen, dass ein weiterer Backup-Prozess läuft. Sie könnten versuchen, den Container neu zu starten und es dann erneut zu versuchen.

Vielen Dank für Ihren Rat.
Ich konnte das Backup erfolgreich starten.
Allerdings hängt der Vorgang seit etwa 20 Minuten an diesem Punkt (siehe Screenshot unten). Ist das normal?

Ja, diese Tabelle kann aufgrund eines Fehlers sehr groß werden, siehe Clean up user_auth_token_logs?

Wenn dies zu einem Problem wird, können Sie die Sicherung stoppen, die Rails-Konsole eingeben

rails c
UserAuthTokenLog.delete_all

und dann die Sicherung neu starten.

3 „Gefällt mir“

Vielen Dank für Ihren Vorschlag. Ich habe die neuesten Daten erfolgreich gesichert.
Außerdem, da das Betriebssystem bereits neu installiert wurde, wie kann ich den neuesten Zustand direkt mit der app.yml und den Backup-Dateien wiederherstellen? Gibt es eine offizielle Dokumentation dafür? Oder muss ich zuerst den standardmäßigen Docker-Installationsprozess durchlaufen und dann das Backup importieren, um alles wiederherzustellen?

Übrigens, als ich versucht habe herauszufinden, auf welchen Commit mein Discourse-Backup verweist, erhielt ich die folgende Ausgabe. Haben Sie eine Idee, warum das so sein könnte?

/var/www/discourse# git blame db/migrate/20240516145911*
fatal: no such path 'db/migrate/20240516145911*' in HEAD

Das!

Spoiler: Es gehört zum Chat-Plugin.

root@testbeta:/var/www/discourse# locate 202405161459
/var/www/discourse/plugins/chat/db/migrate/20240516145911_update_user_options_for_thread_title_prompts.rb
root@testbeta:/var/www/discourse# cd plugins/chat/
root@testbeta:/var/www/discourse/plugins/chat# git blame db/migrate/20240516145911*
1 „Gefällt mir“

Vielen Dank!
Ich bin mir nicht ganz sicher :denkende: Generiert diese Methode einen Commit direkt an das Discourse-Repository selbst, anstatt an das Chat-Plugin? Wenn ja, könntest du den Mechanismus dahinter erklären?

Es scheint, dass ich dieser Anleitung folgen könnte?
https://meta.discourse.org/t/restore-a-backup-from-the-command-line/

2 „Gefällt mir“

Ich habe den von Ihnen empfohlenen Weg versucht, bin aber auf folgendes Problem gestoßen.
Könnten Sie sich das bitte ansehen und mir mitteilen, was schiefgelaufen sein könnte?

/var/www/discourse# locate 20240516145911
/shared/backups/default/discourse-2025-05-24-113557-v20240516145911.tar.gz
/var/www/discourse/plugins/chat/db/post_migrate/20240516145911_update_user_options_for_thread_title_prompts.rb
root@tartali-app:/var/www/discourse# cd plugins/chat/
root@tartali-app:/var/www/discourse/plugins/chat# git blame db/migrate/20240516145911*
fatal: no such path 'plugins/chat/db/migrate/20240516145911*' in HEAD```

Entschuldigung. Ich habe es mit git blame db/post_migrate/20240516145911* herausgefunden.Dies ist die Ausgabe:

root@tartali-app:/var/www/discourse/plugins/chat# git blame db/post_migrate/20240516145911*
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (422/422), done.
remote: Compressing objects: 100% (421/421), done.
remote: Total 2571 (delta 2), reused 1 (delta 1), pack-reused 2149 (from 1)
Receiving objects: 100% (2571/2571), 1008.42 KiB | 14.20 MiB/s, done.
Resolving deltas: 100% (2/2), done.
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (405/405), done.
remote: Compressing objects: 100% (405/405), done.
Receiving objects: 100% (2571/2571), 1007.76 KiB | 21.91 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2166 (from 1)
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (413/413), done.
remote: Compressing objects: 100% (413/413), done.
Receiving objects: 100% (2571/2571), 1007.81 KiB | 22.90 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2158 (from 1)
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (413/413), done.
remote: Compressing objects: 100% (413/413), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2158 (from 1)
Receiving objects: 100% (2571/2571), 1007.82 KiB | 22.40 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (413/413), done.
remote: Compressing objects: 100% (413/413), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2158 (from 1)
Receiving objects: 100% (2571/2571), 1007.81 KiB | 22.40 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (405/405), done.
remote: Compressing objects: 100% (405/405), done.
Receiving objects: 100% (2571/2571), 1007.76 KiB | 22.39 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2166 (from 1)
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (405/405), done.
remote: Compressing objects: 100% (405/405), done.
Receiving objects: 100% (2571/2571), 1007.76 KiB | 22.39 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2166 (from 1)
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (413/413), done.
remote: Compressing objects: 100% (413/413), done.
Receiving objects: 100% (2571/2571), 1007.78 KiB | 23.44 MiB/s, done.
Resolving deltas: 100% (3/3), done.
remote: Total 2571 (delta 3), reused 0 (delta 0), pack-reused 2158 (from 1)
remote: Enumerating objects: 2571, done.
remote: Counting objects: 100% (422/422), done.
remote: Compressing objects: 100% (421/421), done.
remote: Total 2571 (delta 2), reused 1 (delta 1), pack-reused 2149 (from 1)
Receiving objects: 100% (2571/2571), 1008.39 KiB | 22.92 MiB/s, done.Auflösen der Deltas: 100% (2/2), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (422/422), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (421/421), abgeschlossen.
Remote: Insgesamt 2571 (Delta 2), 1 wiederverwendet (Delta 1), 2149 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1008.39 KiB | 22.41 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (2/2), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (404/404), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (404/404), abgeschlossen.
Remote: Insgesamt 2571 (Delta 3), 0 wiederverwendet (Delta 0), 2167 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1007.74 KiB | 21.91 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (3/3), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (422/422), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (421/421), abgeschlossen.
Remote: Insgesamt 2571 (Delta 2), 1 wiederverwendet (Delta 1), 2149 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1008.40 KiB | 22.92 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (2/2), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (422/422), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (421/421), abgeschlossen.
Remote: Insgesamt 2571 (Delta 2), 1 wiederverwendet (Delta 1), 2149 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1008.39 KiB | 22.41 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (2/2), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (414/414), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (414/414), abgeschlossen.
Empfangene Objekte: 100% (2571/2571), 1007.78 KiB | 22.90 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (3/3), abgeschlossen.
Remote: Insgesamt 2571 (Delta 3), 0 wiederverwendet (Delta 0), 2157 wiederverwendet (von 1)
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (403/403), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (403/403), abgeschlossen.
Remote: Insgesamt 2571 (Delta 3), 0 wiederverwendet (Delta 0), 2168 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1007.66 KiB | 22.39 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (3/3), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (413/413), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (413/413), abgeschlossen.
Remote: Insgesamt 2571 (Delta 3), 0 wiederverwendet (Delta 0), 2158 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1007.70 KiB | 12.44 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (3/3), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (412/412), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (412/412), abgeschlossen.
Remote: Insgesamt 2571 (Delta 3), 0 wiederverwendet (Delta 0), 2159 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1007.71 KiB | 22.39 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (3/3), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.
Remote: Objekte werden gezählt: 100% (419/419), abgeschlossen.
Remote: Objekte werden komprimiert: 100% (418/418), abgeschlossen.
Remote: Insgesamt 2571 (Delta 2), 1 wiederverwendet (Delta 1), 2152 wiederverwendet (von 1)
Empfangene Objekte: 100% (2571/2571), 1008.31 KiB | 21.92 MiB/s, abgeschlossen.
Auflösen der Deltas: 100% (2/2), abgeschlossen.
Remote: Objekte werden aufgelistet: 2571, abgeschlossen.remote: Objekte zählen: 100% (404/404), fertig.
remote: Objekte komprimieren: 100% (404/404), fertig.
remote: Insgesamt 2571 (Delta 3), wiederverwendet 0 (Delta 0), wiederverwendet 2167 (von 1)
Empfange Objekte: 100% (2571/2571), 1007.66 KiB | 22.90 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Objekte auflisten: 2571, fertig.
remote: Objekte zählen: 100% (414/414), fertig.
remote: Objekte komprimieren: 100% (414/414), fertig.
remote: Insgesamt 2571 (Delta 3), wiederverwendet 0 (Delta 0), wiederverwendet 2157 (von 1)
Empfange Objekte: 100% (2571/2571), 1007.70 KiB | 12.00 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Objekte auflisten: 2571, fertig.
remote: Objekte zählen: 100% (412/412), fertig.
remote: Objekte komprimieren: 100% (412/412), fertig.
remote: Insgesamt 2571 (Delta 3), wiederverwendet 0 (Delta 0), wiederverwendet 2159 (von 1)
Empfange Objekte: 100% (2571/2571), 1007.70 KiB | 22.39 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (416/416), fertig.
remote: Objekte komprimieren: 100% (416/416), fertig.
Empfange Objekte: 100% (2569/2569), 1006.98 KiB | 22.89 MiB/s, fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), wiederverwendet 2153 (von 1)
Löse Deltas auf: 100% (3/3), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (418/418), fertig.
remote: Objekte komprimieren: 100% (417/417), fertig.
Empfange Objekte: 100% (2569/2569), 1007.58 KiB | 22.90 MiB/s, fertig.
remote: Insgesamt 2569 (Delta 2), wiederverwendet 1 (Delta 1), wiederverwendet 2151 (von 1)
Löse Deltas auf: 100% (2/2), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (405/405), fertig.
remote: Objekte komprimieren: 100% (405/405), fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), wiederverwendet 2164 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.90 KiB | 22.88 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (417/417), fertig.
remote: Objekte komprimieren: 100% (416/416), fertig.
remote: Insgesamt 2569 (Delta 2), wiederverwendet 1 (Delta 1), wiederverwendet 2152 (von 1)
Empfange Objekte: 100% (2569/2569), 1007.75 KiB | 20.57 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (417/417), fertig.
remote: Objekte komprimieren: 100% (416/416), fertig.
remote: Insgesamt 2569 (Delta 2), wiederverwendet 1 (Delta 1), wiederverwendet 2152 (von 1)
Empfange Objekte: 100% (2569/2569), 1007.74 KiB | 23.44 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (417/417), fertig.
remote: Objekte komprimieren: 100% (416/416), fertig.
remote: Insgesamt 2569 (Delta 2), wiederverwendet 1 (Delta 1), wiederverwendet 2152 (von 1)
Empfange Objekte: 100% (2569/2569), 1007.55 KiB | 23.43 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Objekte auflisten: 2569, fertig.
remote: Objekte zählen: 100% (417/417), fertig.
remote: Objekte komprimieren: 100% (416/416), fertig.remote: Total 2569 (delta 2), reused 1 (delta 1), pack-reused 2152 (from 1)
Empfange Objekte: 100% (2569/2569), 1007.56 KiB | 23.43 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (418/418), done.
remote: Compressing objects: 100% (417/417), done.
remote: Total 2569 (delta 2), reused 1 (delta 1), pack-reused 2151 (from 1)
Empfange Objekte: 100% (2569/2569), 1007.56 KiB | 10.72 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (405/405), done.
remote: Compressing objects: 100% (405/405), done.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2164 (from 1)
Empfange Objekte: 100% (2569/2569), 1006.91 KiB | 22.38 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (404/404), done.
remote: Compressing objects: 100% (404/404), done.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2165 (from 1)
Empfange Objekte: 100% (2569/2569), 1006.90 KiB | 22.38 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (404/404), done.
remote: Compressing objects: 100% (404/404), done.
Empfange Objekte: 100% (2569/2569), 1006.88 KiB | 22.88 MiB/s, fertig.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2165 (from 1)
Löse Deltas auf: 100% (3/3), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (416/416), done.
remote: Compressing objects: 100% (416/416), done.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2153 (from 1)
Empfange Objekte: 100% (2569/2569), 1006.89 KiB | 5.47 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (415/415), done.
remote: Compressing objects: 100% (415/415), done.
Empfange Objekte: 100% (2569/2569), 1006.89 KiB | 22.88 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2154 (from 1)
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (415/415), done.
remote: Compressing objects: 100% (415/415), done.
Empfange Objekte: 100% (2569/2569), 1006.89 KiB | 21.42 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2154 (from 1)
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (416/416), done.
remote: Compressing objects: 100% (415/415), done.
remote: Total 2569 (delta 2), reused 1 (delta 1), pack-reused 2153 (from 1)
Empfange Objekte: 100% (2569/2569), 1007.50 KiB | 23.43 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (405/405), done.
remote: Compressing objects: 100% (405/405), done.remote: Gesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-wiederverwendet 2164 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.63 KiB | 13.98 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (405/405), fertig.
remote: Komprimiere Objekte: 100% (405/405), fertig.
remote: Gesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-wiederverwendet 2164 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.63 KiB | 19.36 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (417/417), fertig.
remote: Komprimiere Objekte: 100% (416/416), fertig.
remote: Gesamt 2569 (Delta 2), wiederverwendet 1 (Delta 1), Pack-wiederverwendet 2152 (von 1)
Empfange Objekte: 100% (2569/2569), 1007.29 KiB | 15.50 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (405/405), fertig.
remote: Komprimiere Objekte: 100% (405/405), fertig.
remote: Gesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-wiederverwendet 2164 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.63 KiB | 16.50 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (405/405), fertig.
remote: Komprimiere Objekte: 100% (405/405), fertig.
Empfange Objekte: 100% (2569/2569), 1006.63 KiB | 22.37 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Gesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-wiederverwendet 2164 (von 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (417/417), fertig.
remote: Komprimiere Objekte: 100% (416/416), fertig.
remote: Gesamt 2569 (Delta 2), wiederverwendet 1 (Delta 1), Pack-wiederverwendet 2152 (von 1)
Empfange Objekte: 100% (2569/2569), 1007.29 KiB | 22.89 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (405/405), fertig.
remote: Komprimiere Objekte: 100% (405/405), fertig.
remote: Gesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-wiederverwendet 2164 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.63 KiB | 21.42 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (416/416), fertig.
remote: Komprimiere Objekte: 100% (416/416), fertig.
Empfange Objekte: 100% (2569/2569), 1006.67 KiB | 20.13 MiB/s, fertig.Auflösen von Deltas: 100% (3/3), abgeschlossen.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2153 (from 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (417/417), done.
remote: Compressing objects: 100% (416/416), done.
remote: Total 2569 (delta 2), reused 1 (delta 1), pack-reused 2152 (from 1)
Empfangen von Objekten: 100% (2569/2569), 1007.29 KiB | 21.43 MiB/s, abgeschlossen.
Auflösen von Deltas: 100% (2/2), abgeschlossen.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (416/416), done.
remote: Compressing objects: 100% (416/416), done.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2153 (from 1)
Empfangen von Objekten: 100% (2569/2569), 1006.68 KiB | 21.88 MiB/s, abgeschlossen.
Auflösen von Deltas: 100% (3/3), abgeschlossen.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (415/415), done.
remote: Compressing objects: 100% (414/414), done.
Empfangen von Objekten: 100% (2569/2569), 1007.28 KiB | 23.42 MiB/s, abgeschlossen.
Auflösen von Deltas: 100% (2/2), abgeschlossen.
remote: Total 2569 (delta 2), reused 1 (delta 1), pack-reused 2154 (from 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (415/415), done.
remote: Compressing objects: 100% (415/415), done.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2154 (from 1)
Empfangen von Objekten: 100% (2569/2569), 1006.68 KiB | 17.98 MiB/s, abgeschlossen.
Auflösen von Deltas: 100% (3/3), abgeschlossen.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (417/417), done.
remote: Compressing objects: 100% (416/416), done.
Empfangen von Objekten: 100% (2569/2569), 1007.29 KiB | 22.89 MiB/s, abgeschlossen.
Auflösen von Deltas: 100% (2/2), abgeschlossen.
remote: Total 2569 (delta 2), reused 1 (delta 1), pack-reused 2152 (from 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (404/404), done.
remote: Compressing objects: 100% (404/404), done.
remote: Total 2569 (delta 3), reused 0 (delta 0), pack-reused 2165 (from 1)
Empfangen von Objekten: 100% (2569/2569), 1006.63 KiB | 20.54 MiB/s, abgeschlossen.
Auflösen von Deltas: 100% (3/3), abgeschlossen.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Aufräumarbeiten.
remote: Enumerating objects: 2569, done.
remote: Counting objects: 100% (416/416), done.
remote: Compressing objects: 100% (416/416), done.remote: Total 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack wiederverwendet 2153 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.68 KiB | 22.88 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (404/404), fertig.
remote: Komprimiere Objekte: 100% (404/404), fertig.
remote: Total 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack wiederverwendet 2165 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.63 KiB | 19.74 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (415/415), fertig.
remote: Komprimiere Objekte: 100% (415/415), fertig.
remote: Total 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack wiederverwendet 2154 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.68 KiB | 14.18 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (416/416), fertig.
remote: Komprimiere Objekte: 100% (415/415), fertig.
Empfange Objekte: 100% (2569/2569), 1007.14 KiB | 22.89 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
remote: Total 2569 (Delta 2), wiederverwendet 1 (Delta 1), Pack wiederverwendet 2153 (von 1)
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (416/416), fertig.
remote: Komprimiere Objekte: 100% (416/416), fertig.
remote: Total 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack wiederverwendet 2153 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.54 KiB | 22.37 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (404/404), fertig.
remote: Komprimiere Objekte: 100% (404/404), fertig.
Empfange Objekte: 100% (2569/2569), 1006.49 KiB | 22.37 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Total 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack wiederverwendet 2165 (von 1)
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (416/416), fertig.
remote: Komprimiere Objekte: 100% (416/416), fertig.
remote: Total 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack wiederverwendet 2153 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.53 KiB | 22.37 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repositorys im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Wartung.
remote: Enumeriere Objekte: 2569, fertig.
remote: Zähle Objekte: 100% (416/416), fertig.remote: Objekte werden komprimiert: 100% (416/416), fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2153 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.53 KiB | 18.99 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung.
remote: Objekte werden aufgezählt: 2569, fertig.
remote: Objekte werden gezählt: 100% (404/404), fertig.
remote: Objekte werden komprimiert: 100% (404/404), fertig.
Empfange Objekte: 100% (2569/2569), 1006.51 KiB | 22.37 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2165 (von 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung.
remote: Objekte werden aufgezählt: 2569, fertig.
remote: Objekte werden gezählt: 100% (404/404), fertig.
remote: Objekte werden komprimiert: 100% (404/404), fertig.
Empfange Objekte: 100% (2569/2569), 1006.51 KiB | 22.88 MiB/s, fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2165 (von 1)
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung.
remote: Objekte werden aufgezählt: 2569, fertig.
remote: Objekte werden gezählt: 100% (417/417), fertig.
remote: Objekte werden komprimiert: 100% (417/417), fertig.
remote: Insgesamt 2569 (Delta 2), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2152 (von 1)
Empfange Objekte: 100% (2569/2569), 1007.17 KiB | 13.80 MiB/s, fertig.
Löse Deltas auf: 100% (2/2), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung.
remote: Objekte werden aufgezählt: 2569, fertig.
remote: Objekte werden gezählt: 100% (416/416), fertig.
remote: Objekte werden komprimiert: 100% (416/416), fertig.
Empfange Objekte: 100% (2569/2569), 1006.56 KiB | 22.88 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2153 (von 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung.
remote: Objekte werden aufgezählt: 2569, fertig.
remote: Objekte werden gezählt: 100% (416/416), fertig.
remote: Objekte werden komprimiert: 100% (416/416), fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2153 (von 1)
Empfange Objekte: 100% (2569/2569), 1006.56 KiB | 11.44 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung.
remote: Objekte werden aufgezählt: 2569, fertig.
remote: Objekte werden gezählt: 100% (405/405), fertig.
remote: Objekte werden komprimiert: 100% (405/405), fertig.
Empfange Objekte: 100% (2569/2569), 1006.45 KiB | 21.88 MiB/s, fertig.
Löse Deltas auf: 100% (3/3), fertig.
remote: Insgesamt 2569 (Delta 3), wiederverwendet 0 (Delta 0), Pack-Wiederverwendung 2164 (von 1)
Automatisches Packen des Repository im Hintergrund für optimale Leistung.
Siehe "git help gc" für manuelle Bereinigung..
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  1) # frozen_string_literal: true
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  2)
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  3) class UpdateUserOptionsForThreadTitlePrompts 	ActiveRecord::Migration[7.0]
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  4)   def up
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  5)     change_column_default :user_options, :show_thread_title_prompts, true
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  6)
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  7)     if DB.query_single(
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  8)          "SELECT 1 FROM user_options WHERE show_thread_title_prompts IS NULL LIMIT 1",
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400  9)        ).first
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 10)       batch_size = 100_000
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 11)       min_id = DB.query_single("SELECT MIN(user_id) FROM user_options").first.to_i
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 12)       max_id = DB.query_single("SELECT MAX(user_id) FROM user_options").first.to_i
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 13)       while max_id >= min_id
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 14)         DB.exec(
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 15)           "UPDATE user_options SET show_thread_title_prompts = true WHERE user_id > #{max_id - batch_size} AND user_id <= #{max_id}",
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 16)         )
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 17)         max_id -= batch_size
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 18)       end
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 19)     end
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 20)
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 21)     change_column_null :user_options, :show_thread_title_prompts, false
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 22)   end
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 23)
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 24)   def down
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 25)   end
34c4acd32f5 (David Battersby 2024-05-17 00:53:19 +0400 26) end
:...überspringen..

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.