gooderp18绿色标准版
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

33 lines
991B

  1. # -*- coding: utf-8 -*-
  2. # Part of Odoo. See LICENSE file for full copyright and licensing details.
  3. from contextlib import suppress
  4. import odoo
  5. import logging
  6. _logger = logging.getLogger(__name__)
  7. def get_installed_modules(cursor):
  8. cursor.execute('''
  9. SELECT name
  10. FROM ir_module_module
  11. WHERE state IN ('installed', 'to upgrade', 'to remove');
  12. ''')
  13. return [result[0] for result in cursor.fetchall()]
  14. def get_neutralization_queries(modules):
  15. # neutralization for each module
  16. for module in modules:
  17. filename = f'{module}/data/neutralize.sql'
  18. with suppress(FileNotFoundError):
  19. with odoo.tools.misc.file_open(filename) as file:
  20. yield file.read().strip()
  21. def neutralize_database(cursor):
  22. installed_modules = get_installed_modules(cursor)
  23. queries = get_neutralization_queries(installed_modules)
  24. for query in queries:
  25. cursor.execute(query)
  26. _logger.info("Neutralization finished")
上海开阖软件有限公司 沪ICP备12045867号-1