Added transfer.py into timetable.
Edited transfer.py for collection and location.
This commit is contained in:
parent
839491c740
commit
7bcd2edab6
|
|
@ -11,12 +11,16 @@ field[1] - название поля в таблице legacy
|
|||
"""
|
||||
card = {
|
||||
"Collection": {
|
||||
"data_type": "objects",
|
||||
"dependencies": ("Country", ),
|
||||
"fields": {
|
||||
"Collections": {
|
||||
# нету аналогов для полей start и end
|
||||
# нету аналогов для полей description, start и end
|
||||
"name": "title",
|
||||
"slug": "slug",
|
||||
"block_size": ("geometries", "JSONField"),
|
||||
"is_publish": ("active", "BooleanField"),
|
||||
"image_url": ("attachment_file_name", "URLField")
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
|
@ -24,7 +28,9 @@ card = {
|
|||
}
|
||||
},
|
||||
"Guide": {
|
||||
"dependencies": ("Collection", ),
|
||||
# как работать с ForeignKey на самого себя(self), поле "parent"
|
||||
"data_type": "objects",
|
||||
"dependencies": ("Collection", "self"),
|
||||
"fields": {
|
||||
"Guides": {
|
||||
# нету аналогов для полей start и end
|
||||
|
|
@ -32,6 +38,7 @@ card = {
|
|||
}
|
||||
},
|
||||
"relations": {
|
||||
# аналалог для поля "collection" не найдено
|
||||
# "parent": "Guide",
|
||||
# "collection": "Collection"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,6 +72,11 @@ card = {
|
|||
},
|
||||
|
||||
"Region": {
|
||||
# subregion_code -> code
|
||||
# region_code -> parent_region
|
||||
# MySQL: select distinct(country_code_2) from cities where subregion_code is not NULL;
|
||||
# только у пяти стран есть понятие "subregion_code"(не NULL): fr, be, ma, aa, gr (country_code_2)
|
||||
# Возможно получиться обойтись без изменений модели Region
|
||||
"data_type": "dictionaries",
|
||||
"dependencies": ("Country", "Region"),
|
||||
"fields": {
|
||||
|
|
|
|||
78
apps/timetable/transfer.py
Normal file
78
apps/timetable/transfer.py
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
"""
|
||||
|
||||
Структура записи в card:
|
||||
Название таблицы в postgresql: {
|
||||
"data_type": "тип данных в таблице (словарь, объект, дочерний объект и так далее)",
|
||||
"dependencies": кортеж с зависимостями от других таблиц в postgresql,
|
||||
"fields": список полей для таблицы postgresql, пример:
|
||||
{
|
||||
"название legacy таблицы": {
|
||||
список полей для переноса, пример структуры описан далее
|
||||
},
|
||||
"relations": список зависимостей legacy-таблицы, пример:
|
||||
{
|
||||
# имеет внешний ключ на "название legacy таблицы" из "fields"
|
||||
"название legacy таблицы": {
|
||||
"key": ключ для связи. Строка, если тип поля в legacy таблице - ForeignKey, или кортеж из названия поля
|
||||
в дочерней таблице и названия поля в родительской таблице в ином случае
|
||||
"fields": {
|
||||
список полей для переноса, пример структуры описан далее
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"relations": список внешних ключей таблицы postgresql, пример структуры описан далее
|
||||
{
|
||||
"Cities": [(
|
||||
(None, "region_code"),
|
||||
("Region", "region", "code", "CharField")),
|
||||
((None, "country_code_2"),
|
||||
("Country", "country", "code", "CharField"))
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Структура fields:
|
||||
key - поле в таблице postgres
|
||||
value - поле или группа полей в таблице legacy
|
||||
|
||||
В случае передачи группы полей каждое поле представляет собой кортеж, где:
|
||||
field[0] - название аргумента
|
||||
field[1] - название поля в таблице legacy
|
||||
Опционально: field[2] - тип данных для преобразования
|
||||
|
||||
Структура внешних ключей:
|
||||
"legacy_table" - спикок кортежей для сопоставления полей
|
||||
"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
|
||||
|
||||
|
||||
"""
|
||||
|
||||
card = {
|
||||
"Timetable": {
|
||||
"data_type": "objects",
|
||||
"dependencies": None,
|
||||
"fields": {
|
||||
"Schedules": {
|
||||
# нет аналогов для weekday, opening_at, closed_at
|
||||
"lunch_start": "lunch_start",
|
||||
"lunch_end": "lunch_end",
|
||||
"diner_start": "diner_start",
|
||||
"diner_end": "diner_end"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
used_apps = None
|
||||
Loading…
Reference in New Issue
Block a user