Я пытаюсь создать тестовую базу данных, которая является репликой уже существующей базы данных. Для этого я использую модели Django (теоретически модели, используемые с исходной базой данных). Недавно я унаследовал код от кого-то другого и пытаюсь понять, что именно происходит с кодом.
В модели одна из таблиц имеет два столбца, которые определены как первичный ключ.
column1 = models.IntegerField(primary_key = True)
column2 = models.IntegerField(primary_key = True)
column3 = models.CharField(max_length = 30)
Когда я пытаюсь синхронизировать эту модель с тестовой базой данных, возникает ошибка:
Файл "/ somePathHere / MySQLdb / connections.py ", строка 36, в defaulterrorhandler поднять класс ошибок, значение ошибки _mysql_exceptions.OperationalError: (1068, 'Определено несколько первичных ключей')
В django docs написано, что Django не допускает использование нескольких первичных ключей. Однако, глядя на вывод DESCRIBE [tablename]
в исходной базе данных MySQL, кажется, что это именно то, что здесь происходит:
+------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+-------+
| IDENTIFIER | bigint(20) | NO | PRI | NULL | |
| TIMESTAMP_ | bigint(20) | NO | PRI | NULL | |
| VALUE_ | longtext | YES | | NULL | |
+------------+------------+------+-----+---------+-------+
Обратите внимание, что IDENTIFIER и TIMESTAMP_ указаны как первичные ключи .
Я вижу много тем о SO ( Пример 1 , Пример 2 и Пример 3 ) о создании первичного ключа на основе нескольких столбцы - что я вижу составной ключ? В таком случае, как это передается через модель Django, то есть как его воспроизвести?
Если это не составной ключ, что это такое?