new relations template

This commit is contained in:
michail 2019-10-04 13:18:43 +05:00
parent 4ce0eb284d
commit ad17a2ad7a
3 changed files with 44 additions and 4 deletions

View File

@ -33,6 +33,7 @@ card = {
# "establishment_type": "EstablishmentType",
# "establishment_subtypes": "EstablishmentSubType",
"collections": "Collection",
# TODO: нашел schedules в legacy
# "schedule": "Timetable",
"award": "Award",
# "tags": "MetaDataContent",

View File

@ -9,9 +9,10 @@ field[1] - название поля в таблице legacy
Опционально: field[2] - тип данных для преобразования
Структура внешних ключей:
"legacy_table" - спикок кортежей для сопоставления полей
"legacy_table": [
("legacy_key", "legacy_field"),
("psql_table", "psql_key", "psql_field", "psql_field_type")
(("legacy_key", "legacy_field"),
("psql_table", "psql_key", "psql_field", "psql_field_type"))
], где:
legacy_table - название модели legacy
legacy_key - ForeignKey в legacy
@ -45,7 +46,15 @@ card = {
"code": "region_code",
},
},
"relations": {}
"relations": {
"Cities": [(
(None, "country_code_2"),
("Country", "country", "code", "CharField")),
((None, "subregion_code"), #TODO: как сопоставлять parent_region из postgres с subregion_code из legacy ?
("Region", "parent_region", "code", "CharField"))
]
}
},
"City": {
@ -63,7 +72,12 @@ card = {
},
},
"relations": {
"Cities": [(
(None, "region_code"),
("Region", "region", "code", "CharField")),
((None, "country_code_2"),
("Country", "country", "code", "CharField"))
]
}
},
@ -79,6 +93,10 @@ card = {
},
},
"relations": {
"Locations": [ #TODO: Locations ссылается внешним ключом на Cities
# (("city", "name"),
# ("City", "city", "name", "CharField"))
]
}
}

View File

@ -407,3 +407,24 @@ class Menus(MigrateMixin):
class Meta:
managed = False
db_table = 'menus'
class Schedules(MigrateMixin):
using = 'legacy'
establishment = models.ForeignKey(Establishments, models.DO_NOTHING, blank=True, null=True)
continuous_service = models.CharField(max_length=255, blank=True, null=True)
open_august = models.CharField(max_length=255, blank=True, null=True)
lunch_start = models.TimeField(blank=True, null=True)
lunch_end = models.TimeField(blank=True, null=True)
diner_start = models.TimeField(blank=True, null=True)
diner_end = models.TimeField(blank=True, null=True)
opening_hours = models.CharField(max_length=255, blank=True, null=True)
opening_dates = models.CharField(max_length=255, blank=True, null=True)
timetable = models.CharField(max_length=10000, blank=True, null=True)
created_at = models.DateTimeField()
updated_at = models.DateTimeField()
class Meta:
managed = False
db_table = 'schedules'