diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 859f2cfc85..48a4feea57 100644 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -842,6 +842,9 @@ def use(site, sites_path="."): ) @click.option("--verbose", default=False, is_flag=True, help="Add verbosity") @click.option("--compress", default=False, is_flag=True, help="Compress private and public files") +@click.option( + "--old-backup-metadata", default=False, is_flag=True, help="Use older backup metadata" +) @pass_context def backup( context, @@ -856,6 +859,7 @@ def backup( compress=False, include="", exclude="", + old_backup_metadata=False, ): "Backup" @@ -881,6 +885,7 @@ def backup( compress=compress, verbose=verbose, force=True, + old_backup_metadata=old_backup_metadata, ) except Exception: click.secho( diff --git a/frappe/utils/backups.py b/frappe/utils/backups.py index 0e52580927..bdba23ac2f 100644 --- a/frappe/utils/backups.py +++ b/frappe/utils/backups.py @@ -55,6 +55,7 @@ class BackupGenerator: include_doctypes="", exclude_doctypes="", verbose=False, + old_backup_metadata=False, ): global _verbose self.compress_files = compress_files or compress @@ -73,6 +74,7 @@ class BackupGenerator: self.include_doctypes = include_doctypes self.exclude_doctypes = exclude_doctypes self.partial = False + self.old_backup_metadata = old_backup_metadata site = frappe.local.site or frappe.generate_hash(length=8) self.site_slug = site.replace(".", "_") @@ -373,14 +375,20 @@ class BackupGenerator: _("gzip not found in PATH! This is required to take a backup."), exc=frappe.ExecutableNotFound ) - database_header_content = [ - "begin frappe metadata", - "[frappe]", - f"version = {frappe.__version__}", - f"branch = {get_app_branch('frappe') or 'N/A'}", - "end frappe metadata", - "", - ] + if self.old_backup_metadata: + database_header_content = [ + f"Backup generated by Frappe {frappe.__version__} on branch {get_app_branch('frappe') or 'N/A'}", + "", + ] + else: + database_header_content = [ + "begin frappe metadata", + "[frappe]", + f"version = {frappe.__version__}", + f"branch = {get_app_branch('frappe') or 'N/A'}", + "end frappe metadata", + "", + ] if self.backup_includes: backup_info = ("Backing Up Tables: ", ", ".join(self.backup_includes)) @@ -516,6 +524,7 @@ def scheduled_backup( compress=False, force=False, verbose=False, + old_backup_metadata=False, ): """this function is called from scheduler deletes backups older than 7 days @@ -534,6 +543,7 @@ def scheduled_backup( compress=compress, force=force, verbose=verbose, + old_backup_metadata=old_backup_metadata, ) @@ -551,6 +561,7 @@ def new_backup( compress=False, force=False, verbose=False, + old_backup_metadata=False, ): delete_temp_backups() odb = BackupGenerator( @@ -570,6 +581,7 @@ def new_backup( exclude_doctypes=exclude_doctypes, verbose=verbose, compress_files=compress, + old_backup_metadata=old_backup_metadata, ) odb.get_backup(older_than, ignore_files, force=force) return odb