diff --git a/apps/location/transfer.py b/apps/location/transfer.py index cbaeaa14..9598246c 100644 --- a/apps/location/transfer.py +++ b/apps/location/transfer.py @@ -8,6 +8,20 @@ field[0] - название аргумента field[1] - название поля в таблице legacy Опционально: field[2] - тип данных для преобразования +Структура внешних ключей: +"legacy_table": [ + ("legacy_key", "legacy_field"), + ("psql_table", "psql_key", "psql_field", "psql_field_type") +], где: +legacy_table - название модели legacy +legacy_key - ForeignKey в legacy +legacy_field - уникальное поле в модели legacy для сопоставления с postgresql +psql_table - название модели psql +psql_key - ForeignKey в postgresql +psql_field - уникальное поле в модели postgresql для сопоставления с legacy +psql_field_type - тип уникального поля в postgresql + + NOTE: среди legacy таблиц совпадение для таблицы Address не найдено (Возможно для Address подходит Locations в legacy) """ @@ -31,10 +45,7 @@ card = { "code": "region_code", }, }, - "relations": { - "parent_region": "Region", - "country": "Country" - } + "relations": {} }, "City": { @@ -52,11 +63,7 @@ card = { }, }, "relations": { - "region": { - "Region", - ("region_code", ("region_id", "int")) - }, - "country": "Country" + } }, @@ -72,7 +79,7 @@ card = { }, }, "relations": { - "city": "City" + } } diff --git a/apps/transfer/mixins.py b/apps/transfer/mixins.py index 88cfe091..a8e8287a 100644 --- a/apps/transfer/mixins.py +++ b/apps/transfer/mixins.py @@ -1,4 +1,5 @@ from django.db import models +from django.forms.models import model_to_dict class SecondDbManager(models.Manager): @@ -17,7 +18,8 @@ class MigrateMixin(models.Model): use_db = 'legacy' objects = SecondDbManager() - def _parse_instance_fields(self): + def _parse_instance_fields(self, fields): + model_dict = model_to_dict(self, fields) print(getattr(self, "using", "Using not found")) class Meta: