Поднимите NAMEDATALEN PostgreSQL без перекомпиляции - PullRequest
1 голос
/ 22 февраля 2011

Можно ли увеличить предел имени идентификатора в PostgreSQL до 63 символов без необходимости перекомпиляции всей системы базы данных?У меня есть этот проект Django, генерирующий повторяющиеся имена индексов из-за этого ограничения, и нет никакого способа изменить имена моделей из-за бизнес-требований моего проекта.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

Для меня это звучит как ошибка в Django. Предыдущая ошибка, максимальная длина имени, не указанная для PostgreSQL , была исправлена. Я ожидаю, что Django будет генерировать идентификаторы базы данных, которые соответствуют max_name_length (). Может быть, я неоправданно оптимистичен.

Django уже знает, как усекать и добавлять повторяемый хеш, чтобы соответствовать Oracle max_name_length (). (См. Проблемы с именами .) Конечно, они не просто объединяют длинный составной идентификатор и надеются на лучшее, если вы используете любую другую платформу.

Возможно ли, что вы переопределяете поведение по умолчанию где-то, что заставляет Django игнорировать max_name_length ()?

Позже . , .

На самом деле, они просто собирают длинный составной идентификатор и надеются на лучшее. Нить на osdir.com предлагает исправить это в Django 1.3. См. Проблемы с DatabaseCreation, именами таблиц и именами индексов - msg # 00142

Еще позже. , .

Билет Ошибки длины индекса при выполнении тестов на MySQL показывают, что такое же исправление для MySQL было исправлено в версии 1.2. Кроме того, что PostgreSQL (и, вероятно, любая другая платформа) имеет ту же проблему. Я не знаю, было ли исправление для PostgreSQL в 1.2.

2 голосов
/ 22 февраля 2011

Нет, невозможно, вы должны использовать более короткие имена. Другие БД допускают еще меньше символов, вы всегда должны проверять эти ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...