@NyxDeveloper

Как правильно и быстро сделать переливку данных из одной базы в другую?

Делаю перелив данных из бызы в базу, но столкнулся с проблемой скорости переливки. Дело в том, что поля 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()


Это небольшая функция для переливки полей маленького объекта, но у меня есть большие объекты, с большим количеством связей и они грузятся минут по сорок. Может есть способ перелить базу лучше моего, если да, то буду рад хоть примеру, хоть документации.
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы