So sichern Sie nur die Datenbank (ohne Uploads) über die Konsole?

Gibt es eine Möglichkeit, nur die Datenbank von der Konsole aus zu sichern?

./launcher enter app
discourse backup

schlägt fehl, wenn versucht wird, Uploads einzuschließen:

...
Sidekiq wird fortgesetzt...
Abschluss der Sicherung...
Erstellen des Archivs: mysite-2020-02-24-183504-v20200203061927.tar.gz
Prüfen, ob das Archiv bereits existiert...
Erstellen eines leeren Archivs...
Archivieren des Daten-Dumps...
Archivieren der Uploads...
EXCEPTION: lib/discourse.rb:57:in `exec': Das Archivieren der Uploads ist fehlgeschlagen.
tar: /var/www/discourse/public/backups/default/mysite-2020-02-24-183504-v20200203061927.tar: Es wurden nur 2048 von 10240 Bytes geschrieben
...

Nicht sicher.. @gerhard oder @vinothkannans, habt ihr eine Idee?

Ja, Sie können nur eine Datenbank-Backup von der Rails-Konsole mit den folgenden Befehlen erstellen.

./launcher enter app
rails c
> BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false)

Hmm, das hat keine Sicherungsdatei erstellt. Die manuelle Sicherung funktioniert jedoch wie erwartet.

Gibt es Logs, die ich prüfen sollte?

Befehlsausgabe:

[1] pry(main)> BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false)
=> #<BackupRestore::Backuper:0x0000562961f73998
 @archive_basename="/var/www/discourse/public/backups/default/mysite-2020-02-25-140934-v20200203061927",
 @archive_directory="/var/www/discourse/public/backups/default",
 @backup_filename="mysite-2020-02-25-140934-v20200203061927.sql.gz",
 @client_id=nil,
 @current_db="default",
 @dump_filename="/var/www/discourse/tmp/backups/default/2020-02-25-140934/dump.sql.gz",
 @filename_override=nil,
 @logs=[],
 @publish_to_message_bus=false,
 @readonly_mode_was_enabled=true,
 @store=#<BackupRestore::LocalBackupStore:0x0000562961f74938 @base_directory="/var/www/discourse/public/backups/default">
 @success=false,
 @timestamp="2020-02-25-140934",
 @tmp_directory="/var/www/discourse/tmp/backups/default/2020-02-25-140934",
 @user=
  #<User:0x0000562961f70c48
   id: -1,
   username: "system",
   created_at: Wed, 16 Jul 2014 08:22:15 UTC +00:00,
   updated_at: Mon, 24 Feb 2020 23:41:26 UTC +00:00,
   name: "system",
   seen_notification_id: 0,
   last_posted_at: Thu, 13 Feb 2020 05:29:57 UTC +00:00,
   password_hash: [FILTERED],
   salt: "5a5b04e52bc687549aeb1fc8c7537af6",
   active: true,
   username_lower: "system",
   last_seen_at: nil,
   admin: true,
   last_emailed_at: nil,
   trust_level: 4,
   approved: true,
   approved_by_id: nil,
   approved_at: nil,
   previous_visit_at: nil,
   suspended_at: nil,
   suspended_till: nil,
   date_of_birth: nil,
   views: 0,
   flag_level: 0,
   ip_address: nil,
   moderator: true,
   title: nil,
   uploaded_avatar_id: 1,
   locale: nil,
   primary_group_id: nil,
   registration_ip_address: nil,
   staged: false,
   first_seen_at: nil,
   silenced_till: nil,
   group_locked_trust_level: nil,
   manual_locked_trust_level: 4,
   secure_identifier: nil>,
 @user_id=-1,
 @with_uploads=false>

Ah, ich habe vergessen, am Ende .run hinzuzufügen. Es sollte BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run heißen.

Ich habe mich für das Thema interessiert und viele Threads gelesen. Mein Fazit ist, dass es sogar sicher ist, Kopien direkt von der Konsole wiederherzustellen, um Fehler zu vermeiden – wie macht man das im Allgemeinen richtig?