Доктрина 2 задыхается от столбцов таблицы Postgres - PullRequest
0 голосов
/ 23 марта 2012

Мы используем Doctrine 2 для нового проекта и столкнулись с проблемой: Doctrine 2 дросселирует имена столбцов таблицы Postgres с пробелами. Например, скажем, есть столбец с именем «Продавец». Хотя мы с вами знаем, что в имени столбца не должно быть пробела, он существует точно так же. Базы данных были разработаны много лет назад, и на них работают критические бизнес-системы, поэтому имена столбцов не могут быть изменены. Есть ли способ обойти эту проблему без взлома Доктрины, чтобы справиться с этой ситуацией? Если нет, то как бы вы предложили решить эту проблему в конце Учения?

1 Ответ

2 голосов
/ 23 марта 2012

Выглядит как еще один плохо закодированный ORM

http://docs.doctrine -project.org / projects / doctrine-orm / en / 2.0.x / reference / sizes-and-known-questions.html

http://docs.doctrine -project.org / projects / doctrine-orm / ru / 2.0.x / reference / basic-mapping.html

Говорит полезные вещинапример: «Вы не можете использовать не [a-zA-Z0-9 _] + символы, они будут нарушать несколько операторов SQL» и «Кавычки идентификаторов не должны использоваться, чтобы разрешить использование нестандартных символов, таких как тире» и «Скорее всего, у Schema-Tool возникнут проблемы при использовании кавычек из соображений чувствительности к регистру ".

Похоже, это еще один ORM, созданный кем-то, кто не хочет, чтобы он работал с реальными базами данных.Наличие столбцов с пробелами и т. Д. Не является блестящей идеей, но в SQL это вполне законно.

У вас есть только три варианта:

  1. Переименовать все столбцы (илиоберните все в представления).
  2. Доктрина хака
  3. Доктрина дампа

Ни один из них не идеален, и я не уверен, что будет проще в вашем случае.

...