diff options
| -rw-r--r-- | ishtar_common/management/commands/migrate_to_geo_v4.py | 24 | 
1 files changed, 20 insertions, 4 deletions
| diff --git a/ishtar_common/management/commands/migrate_to_geo_v4.py b/ishtar_common/management/commands/migrate_to_geo_v4.py index 498ec796a..e762bae94 100644 --- a/ishtar_common/management/commands/migrate_to_geo_v4.py +++ b/ishtar_common/management/commands/migrate_to_geo_v4.py @@ -21,6 +21,7 @@ from archaeological_finds.models import BaseFind  from archaeological_warehouse.models import Warehouse, Container +debug = False  log_path = os.sep.join([settings.ROOT_PATH, "logs"])  if not os.path.exists(log_path):      os.mkdir(log_path, mode=0o770) @@ -73,6 +74,8 @@ cls_labels = {  def _process_site_ope(obj):      connection.close() +    if debug: +        base_debug = "_process_site_ope - l. {} - " + f"{obj} ({obj.pk}) - " + "{}"      obj._no_move = True      obj.skip_history_when_saving = True      obj.save()  # auto manage geo town association @@ -88,6 +91,8 @@ def _process_site_ope(obj):      obj_verbose_names = cls_labels[obj.__class__.__name__]      if obj.multi_polygon_source == "P" and obj.multi_polygon \              and obj.multi_polygon_source_item in obj_verbose_names: +        if debug: +            print(base_debug.format(95, "multi_polygon"))          attrs = {              "name": f"{_(model_name.capitalize())}{_(':')} {str(obj)}",              "source_content_type": model_content_type, @@ -110,6 +115,8 @@ def _process_site_ope(obj):      if obj.point_source == "P" and obj.point_2d \              and obj.point_source_item in obj_verbose_names:          if obj.x and obj.y: +            if debug: +                print(base_debug.format(95, "point - coordinates"))              attrs = {                  "name": f"{_(model_name.capitalize())}{_(':')} {str(obj)}",                  "source_content_type": model_content_type, @@ -132,6 +139,8 @@ def _process_site_ope(obj):                  ]              )          elif obj.point_2d: +            if debug: +                print(base_debug.format(95, "point_2d"))              attrs = {                  "name": f"{_(model_name.capitalize())}{_(':')} {str(obj)}",                  "source_content_type": model_content_type, @@ -258,11 +267,18 @@ def write_output(arg):  def launch_job(lst, name, process_number, process_func):      global idx, total, model_name, ref_time      idx, total, model_name, ref_time = 0, len(lst), name, datetime.datetime.now() -    pool = Pool(processes=process_number) +    pool = None +    if process_number > 1: +        pool = Pool(processes=process_number)      for item in lst: -        pool.apply_async(process_func, (item,), callback=write_output) -    pool.close() -    pool.join() +        if pool: +            pool.apply_async(process_func, (item,), callback=write_output) +        else: +            process_func(item) +            write_output(None) +    if pool: +        pool.close() +        pool.join()  quiet = False | 
