Simplified db dumps restore

This commit is contained in:
Spitap
2022-09-19 15:50:03 +02:00
parent e30add03fd
commit 6b096a7470
4 changed files with 23 additions and 31 deletions

View File

@@ -77,16 +77,9 @@ class Amavis(base.Installer):
def get_sql_schema_path(self):
"""Return schema path."""
if self.restore:
utils.printcolor(
"Trying to restore amavis database from backup.", utils.MAGENTA)
amavis_db_backup_path = os.path.join(
self.restore, "databases/amavis.sql")
if os.path.isfile(amavis_db_backup_path):
utils.printcolor(
"Amavis database backup found ! Restoring...", utils.GREEN)
return amavis_db_backup_path
utils.printcolor(
"Amavis database backup not found, creating empty database.", utils.RED)
db_dump_path = self._restore_database_dump("amavis")
if db_dump_path is not None:
return db_dump_path
version = package.backend.get_installed_version("amavisd-new")
if version is None:

View File

@@ -160,6 +160,20 @@ class Installer(object):
self.post_run()
self.restart_daemon()
def _restore_database_dump(self, app_name):
"""Restore database dump from a dump."""
utils.printcolor(
f"Trying to restore {app_name} database from backup.", utils.MAGENTA)
database_backup_path = os.path.join(
self.restore, f"databases/{app_name}.sql")
if os.path.isfile(database_backup_path):
utils.printcolor(
f"{app_name.capitalize()} database backup found ! Restoring...", utils.GREEN)
return database_backup_path
utils.printcolor(
f"{app_name.capitalize()} database backup not found, creating empty database.", utils.RED)
def pre_run(self):
"""Tasks to execute before the installer starts."""
pass

View File

@@ -180,16 +180,9 @@ class Modoboa(base.Installer):
def get_sql_schema_path(self):
if self.restore:
utils.printcolor(
"Trying to restore modoboa database from backup.", utils.MAGENTA)
modoboa_database_backup_path = os.path.join(
self.restore, "databases/modoboa.sql")
if os.path.isfile(modoboa_database_backup_path):
utils.printcolor(
"Modoboa database backup found ! Restoring...", utils.GREEN)
return modoboa_database_backup_path
utils.printcolor(
"Modoboa database backup not found, creating empty database.", utils.RED)
db_dump_path = self._restore_database_dump("modoboa")
if db_dump_path is not None:
return db_dump_path
return super().get_sql_schema_path()()

View File

@@ -26,17 +26,9 @@ class Spamassassin(base.Installer):
def get_sql_schema_path(self):
"""Return SQL schema."""
if self.restore:
utils.printcolor(
"Trying to restore spamassassin database from backup.", utils.MAGENTA)
sa_database_backup_path = os.path.join(
self.restore, "databases/spamassassin.sql")
if os.path.isfile(sa_database_backup_path):
utils.printcolor(
"Spamassassin database backup found ! Restoring...", utils.GREEN)
return sa_database_backup_path
utils.printcolor(
"Spamassassin database backup not found, creating empty database.", utils.RED)
db_dump_path = self._restore_database_dump("spamassassin")
if db_dump_path is not None:
return db_dump_path
if self.dbengine == "postgres":
fname = "bayes_pg.sql"
else: