Делаю перелив данных из бызы в базу, но столкнулся с проблемой скорости переливки. Дело в том, что поля ForignKey каждый раз ищутся слишком долго и при каждом новом добавлении, т.к. объект не перезаписывается, а создается заново.
Вот пример функции переливки:
def load_d_merop(cursor):
cursor.execute('SELECT * FROM d_merop')
for row in cursor:
obj = Merop()
obj.id = row[0]
obj.name = row[1]
obj.idProj = Project.objects.get(id=row[2])
if row[4]:
obj.description = row[4]
obj.save()
def LoadTables():
conn = psycopg2.connect(dbname='vkmt', user='...',
password='...', host='localhost')
cursor = conn.cursor()
try:
load_d_merop(cursor)
print('merop: loaded')
except:
cursor.close()
conn.close()
Это небольшая функция для переливки полей маленького объекта, но у меня есть большие объекты, с большим количеством связей и они грузятся минут по сорок. Может есть способ перелить базу лучше моего, если да, то буду рад хоть примеру, хоть документации.