added transfer.py to partner
This commit is contained in:
parent
ad17a2ad7a
commit
511312bb28
|
|
@ -20,7 +20,7 @@ card = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
"country": "Country",
|
# "country": "Country",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Guide": {
|
"Guide": {
|
||||||
|
|
@ -32,8 +32,8 @@ card = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
"parent": "Guide",
|
# "parent": "Guide",
|
||||||
"collection": "Collection"
|
# "collection": "Collection"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,17 +29,17 @@ card = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
"address": "Address",
|
# "address": "Address",
|
||||||
# "establishment_type": "EstablishmentType",
|
# # "establishment_type": "EstablishmentType",
|
||||||
# "establishment_subtypes": "EstablishmentSubType",
|
# # "establishment_subtypes": "EstablishmentSubType",
|
||||||
"collections": "Collection",
|
# "collections": "Collection",
|
||||||
# TODO: нашел schedules в legacy
|
# # TODO: нашел schedules в legacy
|
||||||
# "schedule": "Timetable",
|
# # "schedule": "Timetable",
|
||||||
"award": "Award",
|
# "award": "Award",
|
||||||
# "tags": "MetaDataContent",
|
# # "tags": "MetaDataContent",
|
||||||
"reviews": "Review",
|
# "reviews": "Review",
|
||||||
# "comments": "Comment",
|
# # "comments": "Comment",
|
||||||
# "favorites": "Favorites"
|
# # "favorites": "Favorites"
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -51,7 +51,7 @@ card = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
"establishment": "Establishment"
|
# "establishment": "Establishment"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ContactPhone": {
|
"ContactPhone": {
|
||||||
|
|
@ -61,7 +61,7 @@ card = {
|
||||||
"phone": "phone"
|
"phone": "phone"
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
"establishment": "Establishment"
|
# "establishment": "Establishment"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
26
apps/gallery/transfer.py
Normal file
26
apps/gallery/transfer.py
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
"""
|
||||||
|
Структура fields:
|
||||||
|
key - поле в таблице postgres
|
||||||
|
value - поле или группа полей в таблице legacy
|
||||||
|
|
||||||
|
В случае передачи группы полей каждое поле представляет собой кортеж, где:
|
||||||
|
field[0] - название аргумента
|
||||||
|
field[1] - название поля в таблице legacy
|
||||||
|
Опционально: field[2] - тип данных для преобразования
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
card = {
|
||||||
|
"Image": {
|
||||||
|
"data_type": "objects",
|
||||||
|
"dependencies": None,
|
||||||
|
"fields": {
|
||||||
|
"MercuryImages": {
|
||||||
|
"image": "attachment_file_name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
used_apps = None
|
||||||
|
|
@ -102,3 +102,5 @@ card = {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
used_apps = None
|
||||||
|
|
|
||||||
58
apps/news/transfer.py
Normal file
58
apps/news/transfer.py
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
"""
|
||||||
|
Структура 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
|
||||||
|
|
||||||
|
|
||||||
|
NOTE: среди legacy таблиц совпадение для таблицы Address не найдено (Возможно для Address подходит Locations в legacy)
|
||||||
|
"""
|
||||||
|
|
||||||
|
card = {
|
||||||
|
# нету аналога для NewsType
|
||||||
|
"News": {
|
||||||
|
"data_type": "objects",
|
||||||
|
"dependencies": ("NewsType", "MetaDataContent", "Country", "Address"),
|
||||||
|
"fields": {
|
||||||
|
"NewsOlds": {
|
||||||
|
"title": ("title", "TJSONField"),
|
||||||
|
|
||||||
|
# в NewsOlds нету аналога для поля subtitle модели News, также нет аналогов для полей start, end, playlist
|
||||||
|
# "subtitle": ""
|
||||||
|
|
||||||
|
|
||||||
|
# Поле "description" модели News имеет тип JSONField(где ключ - это язык, а значение - новость
|
||||||
|
# на языке который указан ключом), а поле "body" NewsOlds имеет тип html-разметки
|
||||||
|
# с вставками шаблонизатора Ruby
|
||||||
|
# "description" : "body"
|
||||||
|
},
|
||||||
|
"relations":[
|
||||||
|
# "address": "",
|
||||||
|
# "country": "",
|
||||||
|
# "tags": "",
|
||||||
|
# "news_type": ""
|
||||||
|
# отложено до выяснения Уточнения и вопросы по мигратору(Как поступать со сбором данных)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
used_apps = ("location", "main", )
|
||||||
46
apps/notification/transfer.py
Normal file
46
apps/notification/transfer.py
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
"""
|
||||||
|
Структура 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
|
||||||
|
|
||||||
|
|
||||||
|
NOTE: среди legacy таблиц совпадение для таблицы Address не найдено (Возможно для Address подходит Locations в legacy)
|
||||||
|
"""
|
||||||
|
|
||||||
|
card = {
|
||||||
|
# нету аналога для NewsType
|
||||||
|
"News": {
|
||||||
|
"data_type": "objects",
|
||||||
|
"dependencies": ("User", ),
|
||||||
|
"fields": {
|
||||||
|
"EmailAddresses": {
|
||||||
|
"email": "email",
|
||||||
|
},
|
||||||
|
"relations": [
|
||||||
|
# отложено до выяснения Уточнения и вопросы по мигратору(Как поступать со сбором данных)
|
||||||
|
# "user": ""
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
used_apps = ("account", )
|
||||||
40
apps/partner/transfer.py
Normal file
40
apps/partner/transfer.py
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
"""
|
||||||
|
Структура 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 = {
|
||||||
|
"Partner": {
|
||||||
|
"data_type": "objects",
|
||||||
|
"dependencies": None,
|
||||||
|
"fields": {
|
||||||
|
"EstablishmentBacklinks": {
|
||||||
|
"url": "backlink_url",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
used_apps = None
|
||||||
|
|
@ -10,6 +10,87 @@ from django.contrib.gis.db import models
|
||||||
from transfer.mixins import MigrateMixin
|
from transfer.mixins import MigrateMixin
|
||||||
|
|
||||||
|
|
||||||
|
class Ezuser(MigrateMixin):
|
||||||
|
using = 'legacy'
|
||||||
|
|
||||||
|
contentobject_id = models.IntegerField(primary_key=True)
|
||||||
|
email = models.CharField(max_length=150)
|
||||||
|
login = models.CharField(max_length=150)
|
||||||
|
password_hash = models.CharField(max_length=50, blank=True, null=True)
|
||||||
|
password_hash_type = models.IntegerField()
|
||||||
|
facebook_id = models.BigIntegerField()
|
||||||
|
#TODO: в legacy нету таблицы 'CadLevel'
|
||||||
|
|
||||||
|
# level = models.ForeignKey('CadLevel', models.DO_NOTHING)
|
||||||
|
points = models.IntegerField()
|
||||||
|
publish_fb_activity = models.IntegerField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = False
|
||||||
|
db_table = 'ezuser'
|
||||||
|
|
||||||
|
|
||||||
|
class Accounts(MigrateMixin):
|
||||||
|
using = 'legacy'
|
||||||
|
|
||||||
|
uuid = models.CharField(max_length=24)
|
||||||
|
nickname = models.CharField(max_length=128, blank=True, null=True)
|
||||||
|
locale = models.CharField(max_length=5, blank=True, null=True)
|
||||||
|
country_code = models.CharField(max_length=3, blank=True, null=True)
|
||||||
|
city = models.CharField(max_length=32, blank=True, null=True)
|
||||||
|
role = models.CharField(max_length=16, blank=True, null=True)
|
||||||
|
consent_purpose = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
consent_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
last_seen_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
created_at = models.DateTimeField()
|
||||||
|
updated_at = models.DateTimeField()
|
||||||
|
email = models.CharField(unique=True, max_length=255)
|
||||||
|
is_admin = models.IntegerField(blank=True, null=True)
|
||||||
|
ezuser_id = models.IntegerField(blank=True, null=True)
|
||||||
|
ez_user_id = models.IntegerField(blank=True, null=True)
|
||||||
|
encrypted_password = models.CharField(max_length=255)
|
||||||
|
reset_password_token = models.CharField(unique=True, max_length=255, blank=True, null=True)
|
||||||
|
reset_password_sent_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
remember_created_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
sign_in_count = models.IntegerField()
|
||||||
|
current_sign_in_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
last_sign_in_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
current_sign_in_ip = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
last_sign_in_ip = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
confirmation_token = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
confirmed_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
confirmation_sent_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
unconfirmed_email = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
webpush_subscription = models.CharField(max_length=5000, blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = False
|
||||||
|
db_table = 'accounts'
|
||||||
|
|
||||||
|
|
||||||
|
class Profiles(MigrateMixin):
|
||||||
|
using = 'legacy'
|
||||||
|
|
||||||
|
firstname = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
lastname = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
gender = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
dob = models.DateField(blank=True, null=True)
|
||||||
|
email = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
phone = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
site_id = models.IntegerField(blank=True, null=True)
|
||||||
|
created_at = models.DateTimeField()
|
||||||
|
updated_at = models.DateTimeField()
|
||||||
|
unique_key = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
account = models.ForeignKey(Accounts, models.DO_NOTHING, blank=True, null=True)
|
||||||
|
state = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
requester_id = models.IntegerField(blank=True, null=True)
|
||||||
|
available_for_events = models.IntegerField(blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = False
|
||||||
|
db_table = 'profiles'
|
||||||
|
|
||||||
|
|
||||||
class Cities(MigrateMixin):
|
class Cities(MigrateMixin):
|
||||||
using = 'legacy'
|
using = 'legacy'
|
||||||
|
|
||||||
|
|
@ -428,3 +509,60 @@ class Schedules(MigrateMixin):
|
||||||
class Meta:
|
class Meta:
|
||||||
managed = False
|
managed = False
|
||||||
db_table = 'schedules'
|
db_table = 'schedules'
|
||||||
|
|
||||||
|
|
||||||
|
class MercuryImages(MigrateMixin):
|
||||||
|
using = 'legacy'
|
||||||
|
|
||||||
|
attachment_file_name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
attachment_content_type = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
attachment_file_size = models.IntegerField(blank=True, null=True)
|
||||||
|
attachment_updated_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
created_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
updated_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = False
|
||||||
|
db_table = 'mercury_images'
|
||||||
|
|
||||||
|
|
||||||
|
class NewsOlds(MigrateMixin):
|
||||||
|
using = 'legacy'
|
||||||
|
|
||||||
|
title = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
body = models.TextField(blank=True, null=True)
|
||||||
|
slug = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
template = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
account = models.ForeignKey("Accounts", models.DO_NOTHING, blank=True, null=True)
|
||||||
|
# site = models.ForeignKey('Sites', models.DO_NOTHING, blank=True, null=True)
|
||||||
|
created_at = models.DateTimeField()
|
||||||
|
updated_at = models.DateTimeField()
|
||||||
|
image_file_name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
image_content_type = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
image_file_size = models.IntegerField(blank=True, null=True)
|
||||||
|
image_updated_at = models.DateTimeField(blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = False
|
||||||
|
db_table = 'news_olds'
|
||||||
|
|
||||||
|
|
||||||
|
class EmailAddresses(MigrateMixin):
|
||||||
|
using = 'legacy'
|
||||||
|
|
||||||
|
account = models.ForeignKey("Accounts", models.DO_NOTHING, blank=True, null=True)
|
||||||
|
partner_notification = models.IntegerField(blank=True, null=True)
|
||||||
|
ip = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
country_code = models.CharField(max_length=3, blank=True, null=True)
|
||||||
|
city = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
locale = models.CharField(max_length=5, blank=True, null=True)
|
||||||
|
created_at = models.DateTimeField()
|
||||||
|
updated_at = models.DateTimeField()
|
||||||
|
email = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
site_id = models.IntegerField(blank=True, null=True)
|
||||||
|
state = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = False
|
||||||
|
db_table = 'email_addresses'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ services:
|
||||||
- POSTGRES_DB=postgres
|
- POSTGRES_DB=postgres
|
||||||
ports:
|
ports:
|
||||||
- "5436:5432"
|
- "5436:5432"
|
||||||
networks:
|
# networks:
|
||||||
- db-net
|
# - db-net
|
||||||
volumes:
|
volumes:
|
||||||
- gm-db:/var/lib/postgresql/data/
|
- gm-db:/var/lib/postgresql/data/
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
|
|
@ -28,8 +28,8 @@ services:
|
||||||
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||||
- discovery.type=single-node
|
- discovery.type=single-node
|
||||||
- xpack.security.enabled=false
|
- xpack.security.enabled=false
|
||||||
networks:
|
# networks:
|
||||||
- app-net
|
# - app-net
|
||||||
# RabbitMQ
|
# RabbitMQ
|
||||||
rabbitmq:
|
rabbitmq:
|
||||||
image: rabbitmq:latest
|
image: rabbitmq:latest
|
||||||
|
|
@ -83,18 +83,18 @@ services:
|
||||||
- worker
|
- worker
|
||||||
- worker_beat
|
- worker_beat
|
||||||
- elasticsearch
|
- elasticsearch
|
||||||
networks:
|
# networks:
|
||||||
- app-net
|
# - app-net
|
||||||
- db-net
|
# - db-net
|
||||||
volumes:
|
volumes:
|
||||||
- .:/code
|
- .:/code
|
||||||
- gm-media:/media-data
|
- gm-media:/media-data
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
|
|
||||||
networks:
|
#networks:
|
||||||
app-net:
|
# app-net:
|
||||||
db-net:
|
# db-net:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
gm-db:
|
gm-db:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user