Миграция устаревшей БД в Django (v1.11) (из Sequelize).
Промежуточная таблица в базе данных не имеет идентификатора (атрибут первичного ключа), так как Sequelize не требует этого, но кажется, что она обязательна в Django.
Текущая настройка Django:
class Address(models.Model):
keyword = models.CharField(max_length=255)
city = models.CharField(max_length=255, blank=True, null=True)
state = models.CharField(max_length=255, blank=True, null=True)
createdAt = models.DateTimeField(db_column='createdAt', auto_now_add=True)
updatedAt = models.DateTimeField(db_column='updatedAt', auto_now=True)
class Meta:
db_table = 'Addresses'
class CustomerExecutive(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
email = models.CharField(max_length=255)
addresses = models.ManyToManyField('Address', through='AddressCustomerExecutiveMapping')
createdAt = models.DateTimeField(db_column='createdAt', auto_now_add=True)
updatedAt = models.DateTimeField(db_column='updatedAt', auto_now=True)
class Meta:
db_table = 'CustomerExecutives'
class AddressCustomerExecutiveMapping(models.Model):
address = models.ForeignKey(Address, db_column='addressId', primary_key=True)
customer_executive = models.ForeignKey(CustomerExecutive, db_column='customerExecutiveId', primary_key=True)
createdAt = models.DateTimeField(db_column='createdAt', auto_now_add=True)
updatedAt = models.DateTimeField(db_column='updatedAt', auto_now=True)
class Meta:
db_table = 'AddressCustomerExecutiveMapping'
unique_together = (('address', 'customer_executive'),)
Если primary_key
не указано в AddressCustomerExecutiveMapping.address
или AddressCustomerExecutiveMapping.customer_executive
, это дает ошибку, необходимую для первичного ключа, и, если она указана, я не могу добавить повторяющиеся значения в столбце (тогда их будет не много, а много).
Как я могу решить это?