¿Cómo hacer una copia de seguridad de la base de datos solamente (sin subidas) desde la consola?

¿Hay alguna forma de hacer una copia de seguridad de la base de datos solo desde la consola?

./launcher enter app
discourse backup

falla al intentar incluir las cargas:

...
Reanudando sidekiq...
Finalizando la copia de seguridad...
Creando el archivo comprimido: mysite-2020-02-24-183504-v20200203061927.tar.gz
Verificando que el archivo comprimido no exista ya...
Creando un archivo comprimido vacío...
Archivando el volcado de datos...
Archivando las cargas...
EXCEPCIÓN: lib/discourse.rb:57:in `exec': Error al archivar las cargas.
tar: /var/www/discourse/public/backups/default/mysite-2020-02-24-183504-v20200203061927.tar: Solo se escribieron 2048 de 10240 bytes
...
6 Me gusta

No estoy seguro… @gerhard o @vinothkannans, ¿alguna idea?

3 Me gusta

Sí, puedes realizar una copia de seguridad solo de la base de datos desde la consola de Rails con los siguientes comandos.

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

Hmm, esto no ha generado el archivo de copia de seguridad. Sin embargo, la copia de seguridad manual funciona como se espera.

¿Hay algún registro que deba examinar?

Salida del comando:

[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>
1 me gusta

Ah, olvidé añadir .run al final. Debería ser BackupRestore::Backuper.new(Discourse.system_user.id, with_uploads: false).run

13 Me gusta

Me interesé en el tema y leí muchos hilos. Mi conclusión es que incluso es seguro restaurar copias directamente desde la consola para evitar errores. ¿En general, cómo se hace correctamente?

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