Вызывает ли установка unique_together удаление дубликатов при миграции? - PullRequest
0 голосов
/ 23 июня 2019

В моей базе данных есть дубликаты для пары полей, которые я хотел бы удалить.

Можно ли сделать это, просто установив unique_together для пары и мигрировав?Я использую Django 2.0.Вот модель (с уже добавленным unique_together):

class Candle(models.Model):
    symbol = models.CharField(max_length=32)
    name = models.CharField(max_length=32)
    timestamp = models.DateTimeField()
    open = models.FloatField()
    high = models.FloatField()
    low = models.FloatField()
    close = models.FloatField()
    volume = models.FloatField()

    def __str__(self):
        return 'Candlestick for {} at {}.'.format(self.symbol, 
                self.timestamp)

    class Meta:
        indexes = [
            models.Index(fields=['symbol']),
            models.Index(fields=['timestamp'])
        ]
        unique_together = (('symbol', 'timestamp'),)

В противном случае, каков наилучший способ отбросить эти дубликаты и избежать вставки новых?Должен ли я перейти непосредственно в PostGreSQL, удалить дубликаты и затем применить правило?

Я нашел два возможных решения для удаления дубликатов:

  1. Цикл через набор запросовдубликатов
  2. Прямо из SQL
...