Merge branch 'psql-refactor-code' into 'main'

[REF] Psql refactor code

See merge request odoo-openupgrade-wizard/odoo-openupgrade-wizard!65
This commit is contained in:
Rémy Taymans 2024-03-23 16:00:40 +00:00
commit 6a2acce0ab
2 changed files with 12 additions and 14 deletions

View File

@ -2,10 +2,7 @@ import shutil
from loguru import logger from loguru import logger
from odoo_openupgrade_wizard.tools.tools_postgres import ( from odoo_openupgrade_wizard.tools.tools_postgres import ensure_database
ensure_database,
execute_sql_request,
)
def copydb(ctx, source, dest): def copydb(ctx, source, dest):
@ -13,9 +10,7 @@ def copydb(ctx, source, dest):
ensure_database(ctx, dest, state="absent") ensure_database(ctx, dest, state="absent")
# Copy database # Copy database
logger.info(f"Copy database {source} into {dest} ...") ensure_database(ctx, dest, state="present", template=source)
request = f"CREATE DATABASE {dest} WITH TEMPLATE {source};"
execute_sql_request(ctx, request)
main_path = ctx.obj["filestore_folder_path"] / "filestore" main_path = ctx.obj["filestore_folder_path"] / "filestore"
source_path = main_path / source source_path = main_path / source

View File

@ -137,7 +137,7 @@ def execute_psql_command(
return docker_result.output.decode("utf-8") 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. - Connect to postgres container.
- Check if the database exist. - Check if the database exist.
@ -152,18 +152,21 @@ def ensure_database(ctx, database: str, state="present"):
if [database] in result: if [database] in result:
return return
logger.info("Create database '%s' ..." % database) if template:
request = "CREATE DATABASE {database} owner odoo;".format( logger.info(f"Copy database '{template}' into '{database}' ...")
database=database request = f"CREATE DATABASE {database} WITH TEMPLATE {template};"
) else:
execute_sql_request(ctx, request) logger.info(f"Create database '{database}' ...")
request = f"CREATE DATABASE {database} owner odoo;"
execute_psql_command(ctx, request)
else: else:
if [database] not in result: if [database] not in result:
return return
logger.info("Drop database '%s' ..." % database) logger.info("Drop database '%s' ..." % database)
request = "DROP DATABASE {database};".format(database=database) request = "DROP DATABASE {database};".format(database=database)
execute_sql_request(ctx, request) execute_psql_command(ctx, request)
def execute_sql_files_pre_migration( def execute_sql_files_pre_migration(