Skip to content
Snippets Groups Projects
Commit fc105f03 authored by Vincent Hatakeyama's avatar Vincent Hatakeyama
Browse files

:sparkles: add argument to run SQL script after eventual restauration but before starting the server

parent 0c5427ad
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,8 @@
Default to pdb with pdb++ instead of ipdb. New option ``--ipdb`` to run ipdb instead if wanted.
docker_dev_start: add argument to run SQL script after eventual restauration but before starting the server.
4.0
---
......
......@@ -355,6 +355,12 @@
help="Odoo sources to use, if any [default: %(default)s]",
default=None,
)
parser.add_argument(
"--pre-sql-script",
help="SQL script to run on database [default: %(default)s]",
default=None,
dest="PRE_SQL",
)
# TODO detect that user is member of docker group
......@@ -385,6 +391,7 @@
load_language = ""
installing_or_updating = False
odoo_sources = nmspc.odoo_sources
pre_sql_script = nmspc.PRE_SQL
if restore_filename:
if not database:
......@@ -769,6 +776,64 @@
if not restore:
return 15
# --- Pre SQL script ---
if pre_sql_script:
if start_postgresql:
pre_sql_script_basename = os.path.basename(pre_sql_script)
_logger.info(
"Copying SQL script %s in docker", pre_sql_script_basename
)
call(
[
"docker",
"cp",
pre_sql_script,
"{}:/tmp/{}".format(name, pre_sql_script_basename),
]
)
_logger.info(
"Running SQL script %s in %s",
pre_sql_script_basename,
database,
)
script = call(
[
"docker",
"exec",
name,
"psql",
"-U",
user,
"-d",
database,
"-f",
"/tmp/{}".format(pre_sql_script_basename),
]
)
if script > 0:
_logger.fatal("Error when running script (%s)", script)
return 16
_logger.info("Removing SQL script %s in docker")
call(
[
"docker",
"exec",
name,
"rm",
"/tmp/{}".format(pre_sql_script_basename),
]
)
else:
_logger.info(
"Running SQL script %s in %s", pre_sql_script, database
)
script = call(
["psql", "-U", user, "-d", database, "-f", pre_sql_script]
)
if script > 0:
_logger.fatal("Error when running script (%s)", script)
return 16
# volume magic
target_module_directory = "/mnt/addons"
for module in modules:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment