feat: allow creating a backup with the older metadata style

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
This commit is contained in:
Akhil Narang 2023-11-09 18:13:23 +05:30
parent 998f2c10d6
commit 7f433b84af
No known key found for this signature in database
GPG key ID: 9DCC61E211BF645F
2 changed files with 25 additions and 8 deletions

View file

@ -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(

View file

@ -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