From 4a874957edd4328ad8a7c754296b46b926aaa24a Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Sat, 23 Mar 2024 10:05:34 +0100 Subject: [PATCH] [REF] move postgres code into dedicated tools file --- .../tools/tools_click_odoo_contrib.py | 9 ++------- odoo_openupgrade_wizard/tools/tools_postgres.py | 13 ++++++++----- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/odoo_openupgrade_wizard/tools/tools_click_odoo_contrib.py b/odoo_openupgrade_wizard/tools/tools_click_odoo_contrib.py index 5343634..f828b59 100644 --- a/odoo_openupgrade_wizard/tools/tools_click_odoo_contrib.py +++ b/odoo_openupgrade_wizard/tools/tools_click_odoo_contrib.py @@ -2,10 +2,7 @@ import shutil from loguru import logger -from odoo_openupgrade_wizard.tools.tools_postgres import ( - ensure_database, - execute_sql_request, -) +from odoo_openupgrade_wizard.tools.tools_postgres import ensure_database def copydb(ctx, source, dest): @@ -13,9 +10,7 @@ def copydb(ctx, source, dest): ensure_database(ctx, dest, state="absent") # Copy database - logger.info(f"Copy database {source} into {dest} ...") - request = f"CREATE DATABASE {dest} WITH TEMPLATE {source};" - execute_sql_request(ctx, request) + ensure_database(ctx, dest, state="present", template=source) main_path = ctx.obj["filestore_folder_path"] / "filestore" source_path = main_path / source diff --git a/odoo_openupgrade_wizard/tools/tools_postgres.py b/odoo_openupgrade_wizard/tools/tools_postgres.py index e2ad0d8..185c891 100644 --- a/odoo_openupgrade_wizard/tools/tools_postgres.py +++ b/odoo_openupgrade_wizard/tools/tools_postgres.py @@ -137,7 +137,7 @@ def execute_psql_command( return docker_result.output.decode("utf-8") -def ensure_database(ctx, database: str, state="present"): +def ensure_database(ctx, database: str, state="present", template: str = ""): """ - Connect to postgres container. - Check if the database exist. @@ -152,11 +152,14 @@ def ensure_database(ctx, database: str, state="present"): if [database] in result: return - logger.info("Create database '%s' ..." % database) - request = "CREATE DATABASE {database} owner odoo;".format( - database=database - ) + if template: + logger.info(f"Copy database '{template}' into '{database}' ...") + request = f"CREATE DATABASE {database} WITH TEMPLATE {template};" + else: + logger.info(f"Create database '{database}' ...") + request = f"CREATE DATABASE {database} owner odoo;" execute_sql_request(ctx, request) + else: if [database] not in result: return