WedX - журнал о программировании и компьютерных науках

Поднимите NAMEDATALEN PostgreSQL без перекомпиляции

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


Ответы:


1

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

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

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

Позже . . .

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

Еще позже. . .

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

23.02.2011
  • Да, это может быть ошибка Django... мы использовали версию 1.2.3, и когда я увеличил максимальную длину (с 63 до 255) в Postgres, а затем перекомпилировал ее, она заработала. Не знаю, повлияет ли это на версию 1.3 — и не узнаю, так как я ушел с работы на прошлой неделе. :-П 08.03.2011
  • Что ж, я создам тестовый проект для этого и других тестов и попытаюсь смоделировать условия с более новыми версиями Django; Когда будут результаты, отпишусь здесь. Спасибо! 08.03.2011

  • 2

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

    22.02.2011
  • Я не согласен. Фреймворк должен абстрагироваться от специфичных для платформы вещей, таких как использование TOP или LIMIT, использование EXTRACT или DATEPART(), разделение идентификаторов одинарными, двойными кавычками или скобками, а также максимальная длина идентификатора 63 или 30. . Люди частично используют фреймворки, чтобы перестать думать о серверной части и сосредоточиться на разработке приложений. 24.02.2011
  • Но когда фреймворк этого не делает, приходится снова думать. ОП спрашивает, как изменить стандартное поведение базы данных, это даже хуже, чем ошибка в фреймворке! Исправьте ошибку или обратите внимание на имена. 24.02.2011
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]