Многочисленные базы данных PropelORM v1
У меня мало проблем с установкой PropelORM для работы с несколькими базами данных. Я не мог найти ничего полезного в документации.
-
Создание схем из нескольких баз данных
Я предпочитаю сначала внести изменения в схему базы данных, а затем запустите
$ propel-gen . reverse
чтобы получить schema.xml. Что делать, если моя система состоит из более чем одной базы данных? Может ли он генерировать несколько схем? Я знаю из документации buildtime-conf.xml, которая должна быть создана, но она ничего не делает для меня.
-
Создание классов
Скажем, я создал для разных схем blog.schema.xml и platform.schema.xml. Возможно ли:
-
имеют разные префикс класса для каждой схемы? В build.properties я могу установить propel.classPrefix
, но это будет работать в глобальном масштабе для каждой схемы.
-
имеют разные названия проектов для каждой схемы? Снова в build.properties я могу установить propel.project
, и это создаст определенный каталог в каталоге классов. Сейчас все классы переместятся в одно и то же место. Если я буду использовать одно и то же имя таблицы в обеих схемах, один класс перезапишет другой.
Решение, которое я могу придумать самостоятельно, состоит в том, чтобы установить 2 разных каталога для определенной базы данных, но я предпочел бы более элегантное решение.
Ответы
Ответ 1
Можете ли вы отправить строку <database>
на свою схему?
Пока у вас есть следующее:
<database package="blog" name="blog" defaultIdMethod="native">
Внутри вашего blog.schema.xml он должен создать для вас новый каталог. Если вы позволите пропустить lazyload для вас, вы правы, вы столкнетесь с коллизиями, поэтому я просто вручную предварительно приложил что-то к своим таблицам в schema.xml
(что может быть не самым эффективным для обработки вещей).
Но вы можете сделать что-то вроде:
Это сработало для меня.