Я в настоящее время разрабатываю проект, который включает большой коллективный разум. Каждый пользователь, посещающий веб-сайт, создается, уникальный профиль и их данные позже используются для вычисления лучших соответствий для себя и других пользователей.
По умолчанию Django создает INT (11) id
поле для обработки первичных ключей моделей. Я обеспокоен этим пролетевшим очень быстро (т.е. ~2.4b устройства, посетив страницу без предшествующего настроенного cookie). Как я могу изменить его, чтобы быть представленным как BIGINT в MySQL и долго () в Django самом?
Я нашел, что мог сделать следующий (http://docs.djangoproject.com/en/dev/ref/models/fields/#bigintegerfield):
class MyProfile(models.Model):
id = BigIntegerField(primary_key=True)
Но есть ли способ сделать это автоинкрементом, как обычный id
поля? Кроме того, я могу сделать это неподписанным так, чтобы я заставил больше пространства заполнять?
Спасибо!
Вы могли потом изменить таблицу. Это может быть лучшим решением.
У меня тоже была такая же проблема. Похоже, что в django нет поддержки автоматических полей BigInteger.
Я пытался создать какое-то настраиваемое поле BigIntegerAutoField, но столкнулся с проблемой с системой миграции на юг (юг не мог создать последовательность для моего поля).
Попробовав несколько разных подходов, я решил последовать совету Мэтью и изменить таблицу (например, ALTER TABLE table_name ALTER COLUMN id TYPE bigint;
в postgre)
Было бы здорово получить решение поддерживается django (как встроенный в BigIntegerAutoField) и юг.