Перезаписывает ли функция save() в Django старые данные в таблице DB?

Я работаю над приложением Django, которое работает с двумя базами данных, примерно так:

  1. Oracle DB(to fetch the data on an hourly basis)
  2. MySql DB (to save the processed data fetched from the Oracle DB)

Конфигурация моей базы данных в settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dashboard',
        'USER': 'db1',
        'PASSWORD': 'password1',
        'HOST': 'localhost',
        'PORT': '3306',
    },

    'MBDB': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'xe',
        'USER': 'db2',
        'PASSWORD': 'password2',
        'HOST': 'localhost',
        'PORT': '1521',
    }
}

Моя Django-модель:

class Transactions(models.Model):
    class Meta:
        db_table='TRANSACTIONS'
        unique_together=(("TIME_UPDATED","TRAN_TYPE"),)
        indexes=[
        models.Index(fields=["TIME_UPDATED","TRAN_TYPE"]),
        models.Index(fields=["TRAN_TYPE"])
        ]
    TIME_UPDATED            =   models.DateTimeField()
    TRAN_TYPE               =   models.CharField(max_length=32,primary_key=True)
    SUCCESS                 =   models.IntegerField()
    TECHNICAL_DECLINES      =   models.IntegerField()
    BUSINESS_DECLINES       =   models.IntegerField()
    TOTAL                   =   models.IntegerField()
    PERCENTAGE_TECH_DEC     =   models.FloatField()
    def __str__(self):
        return self.TRAN_TYPE
    def save(self,D,tran):
        self.TIME_UPDATED=D
        self.TRAN_TYPE=T=tran['Type']
        self.SUCCESS=S=int(tran['Success'])
        self.TECHNICAL_DECLINES=TD=int(tran['Tech_dec'])
        self.BUSINESS_DECLINES=BD=int(tran['Bus_dec'])
        self.TOTAL=total=S+TD+BD
        if total==0:#division by zero error constraint
            self.PERCENTAGE_TECH_DEC=0
        else:
            self.PERCENTAGE_TECH_DEC=((TD/(total))*100)
        super(Transactions,self).save()
   Here the column ```TRAN_TYPE`` is defined as the primary key and both ```TRAN_TYPE``` AND ```TIME_UPDATED``` are composite primary keys as defined in ```Class Meta```.

Sample-Queryset из views.py:

{'SERVICE_CODE': 'IBKREVERSAL', 'Type': 'IBKREVERSAL', 'Success': 1, 'Tech_dec': 4, 'Bus_dec': 0}

Кверисет обработан и сохранен @ Транзакции 14 октября 2021 - 17:25:20:

{'TIME_UPDATED': datetime.datetime(2021, 10, 14, 17, 25, 20, tzinfo=<UTC>), 'TRAN_TYPE': 'IBKREVERSAL', 'SUCCESS': 1, 'TECHNICAL_DECLINES': 4, 'BUSINESS_DECLINES': 0, 'TOTAL': 5, 'PERCENTAGE_TECH_DEC': Decimal('80.000')}

Теперь, когда я пытаюсь обработать и сохранить тот же Queryset в другое время, скажем, 14 октября 2021 - 17:27:00, предыдущие данные перезаписываются, что не должно происходить, поскольку я пытаюсь сохранить данные в виде записи.

Как я могу это сделать?

Вернуться на верх