Мы используем Doctrine 2 для нового проекта и столкнулись с проблемой: Doctrine 2 подавляет имена столбцов таблицы Postgres с пробелами в них. Например, предположим, что есть столбец с именем "Продавец". Хотя мы с вами знаем, что в имени столбца не должно быть пробела, он все равно существует. Базы данных были разработаны много лет назад, и на них работают критически важные бизнес-системы, поэтому имена столбцов нельзя изменить. Есть ли способ обойти эту проблему, не взламывая Doctrine, чтобы справиться с этой ситуацией? Если нет, то как бы вы предложили решить эту проблему на стороне Доктрины?
Вопрос
Doctrine 2 задыхается от столбцов таблицы Postgres
Ответы
Ответ 1 · рейтинг 2 · Richard Huxton
Похоже на очередной плохо закодированный ORM
http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/limitations-and-known-issues.html
http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/basic-mapping.html
Говорит полезные вещи, такие как: "Вы не можете использовать символы, отличные от [a-zA-Z0-9_]+, они нарушат несколько операторов SQL" и "Заключение идентификатора в кавычки не должно использоваться для разрешения использования нестандартных символов, таких как тире " и "Schema-Tool, вероятно, будет иметь проблемы, когда цитирование используется для учета регистра".
Похоже, это еще одна ORM, созданная кем-то, кто не хочет, чтобы она работала с реальными базами данных. Наличие столбцов с пробелами и т. д. в них не является блестящей идеей, но это совершенно законно в SQL.
У вас есть только три варианта:
- Переименуйте все столбцы (или оберните все представлениями).
- Взлом доктрины
- Доктрина дампа
Ни один из них не идеален, и я не уверен, что в вашем случае будет проще всего.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Как вставить данные в таблицу Postgres с помощью PowerShell или VBScript?
- Основы продвинутого программирования на C# 54.Day Assignment RecapProject_17
- Извлечение преобразования нагрузки с помощью PostgreSQL с использованием Go и pgx
- Почему вы должны выбрать PostgreSQL для своего следующего проекта
- Пустая таблица соединений, полученная в результате JPA ManyToMany
- Множественные уникальные ограничения в JPA