[ADD] db_restore and update makefile, clean unsued install addons
- db_restore create a _cache_DB and clone for each restore call - This increase speed, 18s to 3s execution - Makefile: add test2 and test3 add erplibre_ecommerce_base
This commit is contained in:
parent
7e4972355d
commit
48fce9e1f0
2 changed files with 119 additions and 74 deletions
110
Makefile
110
Makefile
|
|
@ -87,25 +87,53 @@ db_version:
|
|||
db_drop_db_test:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test
|
||||
|
||||
.PHONY: db_drop_db_test2
|
||||
db_drop_db_test2:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test2
|
||||
|
||||
.PHONY: db_drop_db_test3
|
||||
db_drop_db_test3:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test3
|
||||
|
||||
.PHONY: db_drop_db_code_generator
|
||||
db_drop_db_code_generator:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database code_generator
|
||||
|
||||
.PHONY: db_drop_db_template
|
||||
db_drop_db_template:
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database template
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_test
|
||||
db_restore_erplibre_base_db_test: db_drop_db_test
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --restore --restore_image erplibre_base --database test
|
||||
db_restore_erplibre_base_db_test:
|
||||
./script/db_restore.py --database test
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_test2
|
||||
db_restore_erplibre_base_db_test2:
|
||||
./script/db_restore.py --database test2
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_test3
|
||||
db_restore_erplibre_base_db_test3:
|
||||
./script/db_restore.py --database test3
|
||||
|
||||
.PHONY: db_restore_erplibre_website_db_test
|
||||
db_restore_erplibre_website_db_test: db_drop_db_test
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --restore --restore_image erplibre_website --database test
|
||||
db_restore_erplibre_website_db_test:
|
||||
./script/db_restore.py --database test --image erplibre_website
|
||||
|
||||
.PHONY: db_restore_erplibre_website_chat_crm_db_test
|
||||
db_restore_erplibre_website_chat_crm_db_test: db_drop_db_test
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --restore --restore_image erplibre_website_chat_crm --database test
|
||||
db_restore_erplibre_website_chat_crm_db_test:
|
||||
./script/db_restore.py --database test --image erplibre_website_chat_crm
|
||||
|
||||
.PHONY: db_restore_erplibre_ecommerce_base_db_test
|
||||
db_restore_erplibre_ecommerce_base_db_test:
|
||||
./script/db_restore.py --database test --image erplibre_ecommerce_base
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_code_generator
|
||||
db_restore_erplibre_base_db_code_generator: db_drop_db_code_generator
|
||||
./.venv/bin/python3 ./odoo/odoo-bin db --restore --restore_image erplibre_base --database code_generator
|
||||
db_restore_erplibre_base_db_code_generator:
|
||||
./script/db_restore.py --database code_generator
|
||||
|
||||
.PHONY: db_restore_erplibre_base_db_template
|
||||
db_restore_erplibre_base_db_template:
|
||||
./script/db_restore.py --database template
|
||||
|
||||
#########################
|
||||
# Addons installation #
|
||||
|
|
@ -121,72 +149,6 @@ addons_uninstall_code_generator_demo:
|
|||
.PHONY: addons_reinstall_code_generator_demo
|
||||
addons_reinstall_code_generator_demo: addons_uninstall_code_generator_demo addons_install_code_generator_demo
|
||||
|
||||
.PHONY: addons_install_code_generator_demo_website_snippet
|
||||
addons_install_code_generator_demo_website_snippet:
|
||||
./install_addon.sh code_generator code_generator_demo_website_snippet_content
|
||||
./install_addon.sh code_generator code_generator_demo_website_snippet_effect
|
||||
./install_addon.sh code_generator code_generator_demo_website_snippet_feature
|
||||
./install_addon.sh code_generator code_generator_demo_website_snippet_structure
|
||||
|
||||
.PHONY: addons_uninstall_code_generator_demo_website_snippet
|
||||
addons_uninstall_code_generator_demo_website_snippet:
|
||||
./uninstall_addon.sh code_generator code_generator_demo_website_snippet_content
|
||||
./uninstall_addon.sh code_generator code_generator_demo_website_snippet_effect
|
||||
./uninstall_addon.sh code_generator code_generator_demo_website_snippet_feature
|
||||
./uninstall_addon.sh code_generator code_generator_demo_website_snippet_structure
|
||||
|
||||
.PHONY: addons_reinstall_code_generator_demo_website_snippet
|
||||
addons_reinstall_code_generator_demo_website_snippet: addons_uninstall_code_generator_demo_website_snippet addons_install_code_generator_demo_website_snippet
|
||||
|
||||
.PHONY: addons_install_code_generator_template_demo_portal
|
||||
addons_install_code_generator_template_demo_portal:
|
||||
./install_addon.sh code_generator code_generator_template_demo_portal
|
||||
|
||||
.PHONY: addons_uninstall_code_generator_template_demo_portal
|
||||
addons_uninstall_code_generator_template_demo_portal:
|
||||
./uninstall_addon.sh code_generator code_generator_template_demo_portal
|
||||
|
||||
.PHONY: addons_reinstall_code_generator_template_demo_portal
|
||||
addons_reinstall_code_generator_template_demo_portal: addons_uninstall_code_generator_template_demo_portal addons_install_code_generator_template_demo_portal
|
||||
|
||||
.PHONY: addons_install_code_generator_demo_portal
|
||||
addons_install_code_generator_demo_portal:
|
||||
./install_addon.sh code_generator code_generator_demo_portal
|
||||
|
||||
.PHONY: addons_uninstall_code_generator_demo_portal
|
||||
addons_uninstall_code_generator_demo_portal:
|
||||
./uninstall_addon.sh code_generator code_generator_demo_portal
|
||||
./uninstall_addon.sh code_generator code_generator_demo
|
||||
|
||||
.PHONY: addons_reinstall_code_generator_demo_portal
|
||||
addons_reinstall_code_generator_demo_portal: addons_uninstall_code_generator_demo_portal addons_install_code_generator_demo_portal
|
||||
|
||||
.PHONY: addons_install_demo_portal_on_code_generator
|
||||
addons_install_demo_portal_on_code_generator:
|
||||
./install_addon.sh code_generator demo_portal
|
||||
|
||||
.PHONY: addons_uninstall_demo_portal_on_code_generator
|
||||
addons_uninstall_demo_portal_on_code_generator:
|
||||
./uninstall_addon.sh code_generator demo_portal
|
||||
|
||||
.PHONY: addons_reinstall_demo_portal_on_code_generator
|
||||
addons_reinstall_demo_portal_on_code_generator: addons_uninstall_demo_portal_on_code_generator addons_install_demo_portal_on_code_generator
|
||||
|
||||
.PHONY: addons_install_demo_portal_on_test
|
||||
addons_install_demo_portal_on_test:
|
||||
./install_addon.sh test demo_portal
|
||||
|
||||
.PHONY: addons_uninstall_demo_portal_on_test
|
||||
addons_uninstall_demo_portal_on_test:
|
||||
./uninstall_addon.sh test demo_portal
|
||||
|
||||
.PHONY: addons_reinstall_demo_portal_on_test
|
||||
addons_reinstall_demo_portal_on_test: addons_uninstall_demo_portal_on_test addons_install_demo_portal_on_test
|
||||
|
||||
.PHONY: addons_install_demo_website_snippet_on_test
|
||||
addons_install_demo_website_snippet_on_test:
|
||||
./install_addon.sh test demo_website_snippet_content,demo_website_snippet_effect,demo_website_snippet_feature,demo_website_snippet_structure
|
||||
|
||||
.PHONY: addons_install_all_code_generator_demo
|
||||
addons_install_all_code_generator_demo:
|
||||
./install_addon.sh code_generator code_generator_demo
|
||||
|
|
|
|||
83
script/db_restore.py
Executable file
83
script/db_restore.py
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!./.venv/bin/python
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
from subprocess import check_output
|
||||
|
||||
new_path = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
|
||||
sys.path.append(new_path)
|
||||
|
||||
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_config():
|
||||
"""Parse command line arguments, extracting the config file name,
|
||||
returning the union of config file and command line arguments
|
||||
|
||||
:return: dict of config file settings and command line arguments
|
||||
"""
|
||||
# TODO update description
|
||||
parser = argparse.ArgumentParser(
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
description='''\
|
||||
Restore database, use cache to clone to improve speed.
|
||||
''',
|
||||
epilog='''\
|
||||
'''
|
||||
)
|
||||
# parser.add_argument('-d', '--dir', dest="dir", default="./",
|
||||
# help="Path of repo to change remote, including submodule.")
|
||||
parser.add_argument('--database', help="Database to manipulate.")
|
||||
parser.add_argument('--image', default="erplibre_base",
|
||||
help="Image name to restore, from directory image_db, filename without '.zip'. "
|
||||
"Example, use erplibre_base to use image erplibre_base.zip.")
|
||||
parser.add_argument('--clean_cache', action="store_true", help="Delete all database cache to clone, "
|
||||
"begin by _cache_.")
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
config = get_config()
|
||||
|
||||
# Get list of database
|
||||
arg = "./.venv/bin/python3 ./odoo/odoo-bin db --list"
|
||||
out = check_output(arg.split(" ")).decode()
|
||||
lst_db = out.strip().split("\n")
|
||||
lst_db_cache = [a for a in lst_db if a.startswith("_cache_")]
|
||||
|
||||
if config.clean_cache:
|
||||
for db in lst_db_cache:
|
||||
_logger.info(f"## Delete {db} ##")
|
||||
arg = f"./.venv/bin/python3 ./odoo/odoo-bin db --drop --database {db}"
|
||||
out = check_output(arg.split(" ")).decode()
|
||||
print(out)
|
||||
|
||||
if config.database:
|
||||
cache_database = f"_cache_{config.image}"
|
||||
# Drop db
|
||||
if config.database in lst_db:
|
||||
_logger.info(f"## Drop {config.database} ##")
|
||||
arg = f"./.venv/bin/python3 ./odoo/odoo-bin db --drop --database {config.database}"
|
||||
out = check_output(arg.split(" ")).decode()
|
||||
print(out)
|
||||
# Check cache exist
|
||||
if cache_database not in lst_db_cache:
|
||||
_logger.info(f"## Create cache {cache_database} from image {config.image} ##")
|
||||
arg = f"./.venv/bin/python3 ./odoo/odoo-bin db --restore --restore_image {config.image} " \
|
||||
f"--database {cache_database}"
|
||||
out = check_output(arg.split(" ")).decode()
|
||||
print(out)
|
||||
# Clone database
|
||||
_logger.info(f"## Clone cache {cache_database} to database {config.database} ##")
|
||||
arg = f"./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database {cache_database} " \
|
||||
f"--database {config.database}"
|
||||
out = check_output(arg.split(" ")).decode()
|
||||
print(out)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Reference in a new issue