Актуализировать и дополнить таблицу PostgreSQL из представления MSSQL. Django

Задача должна выполняться с интервалом в 15 минут, поэтому требуется не "тяжелое" решение.

Django 4.0.3 - связан с двумя БД, MSSQL и PostgreSQL(default).

Цель - в таблице LinkPostgreSQL должны храниться исключительно актуальные дополненные записи в соответствии с ViewMSSQL(ненужное удаляется, а нужное добавляется или обновляется).

models.py

class LinkPostgreSQL(models.Model):
    ''' Table из БД PostgreSQL '''
    link = models.IntegerField()
    num_reg = models.CharField(max_length=100, blank=True, null=True)
    xml = models.TextField(blank=True, null=True)
    json_data = models.JSONField(blank=True, null=True)

    class Meta:
        managed = True

    def __str__(self):
        return str(self.id)

class ViewMSSQL(models.Model):
    ''' View из БД MSSQL '''
    link = models.IntegerField(primary_key=True)
    num_reg = models.CharField(max_length=100, blank=True, null=True)
    xml = models.TextField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'view_mssql'
def api_request(lst:list=[]):
   '''
      Принимает список словарей  
      [{link:'1234567', num_reg:'14198465749874', items:['726345081634598273564762154','826345081634598273564762154']}]
      Ответ записывается для каждого словаря dict_n['json_data'] = json_data
   '''
   pass
  1. Необходимо получить данные из ViewMSSQL(их может быть значительно больше 1000)
  2. Проверить их наличие в LinkPostgreSQL по полям [link, num_reg]
    а так же по полю xml (xml думаю можно хешировать для сравнения)
    если xml не совпадает, его необходимо обновить xml из ViewMSSQL.
  3. Перед тем как записать или обновить данные, необходимо при помощи api_request([{}]) обратиться(с уже отфильтрованными данными) к API и получить json_data.
  4. После того как получен json_data дополнить LinkPostgreSQL.json_data
  5. Имея дополненные данные сохранить, обновить и удалить не нужные записи в LinkPostgreSQL.

-- Хеш получаю так:

hashlib.md5(text.encode('utf-8')).hexdigest()

Данные для работы так:

    pg_data = list(models.ViewMSSQL.objects.using('PostgreSQL').all().values())
    ms_data = list(models.LinkPostgreSQL.objects.all().values())

Запрос к API так:

api_request(lst=ms_data):
Вернуться на верх