[REF] move postgres code into dedicated tools file
This commit is contained in:
parent
e5b0ebe6e8
commit
4a874957ed
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,11 +152,14 @@ 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:
|
||||||
|
logger.info(f"Create database '{database}' ...")
|
||||||
|
request = f"CREATE DATABASE {database} owner odoo;"
|
||||||
execute_sql_request(ctx, request)
|
execute_sql_request(ctx, request)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if [database] not in result:
|
if [database] not in result:
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user