Обновление схемы доктрины Symfony2 из каталога и подкаталогов

У меня есть один продукт для многих клиентов, но я хочу иметь одну базу кода. Каждому клиенту нужны определенные изменения в базе данных (репозитории объектов) и в его собственных темах. У каждого клиента есть своя база данных. Мне нужно найти решение для определения в конфигурации для каждого клиента, который должен быть прочитан для создания или обновления его собственной схемы базы данных.

В моих связках у меня есть эта структура в сущностях

Acme\JobBundle\Entities\Customer.php
Acme\JobBundle\Entities\Customer1\Customer.php
Acme\JobBundle\Entities\Customer2\Customer.php
Acme\JobBundle\Entities\Customer3\Customer.php

Acme\JobBundle\Entities\Customer.php is an abstract class

Acme\JobBundle\Entities\Customer1\Customer.php extends Acme\JobBundle\Entities\Customer.php

Спасибо за ваше время

0

Решение

Соответственно Symfony2 док:

Вы можете определить менеджеров нескольких сущностей и связанное отображение:

doctrine:
dbal:
default_connection: default
connections:
default:
driver:   "%database_driver%"host:     "%database_host%"port:     "%database_port%"dbname:   "%database_name%"user:     "%database_user%"password: "%database_password%"charset:  UTF8
customer:
driver:   "%database_driver2%"host:     "%database_host2%"port:     "%database_port2%"dbname:   "%database_name2%"user:     "%database_user2%"password: "%database_password2%"charset:  UTF8

orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
AppBundle:  ~
AcmeStoreBundle: ~
customer:
connection: customer
mappings:
AcmeCustomerBundle: ~

И, конечно, вы можете создать свою схему следующим образом:

# Play only with "default" mappings
$ php app/console doctrine:schema:update --force

# Play only with "customer" mappings
$ php app/console doctrine:schema:update --force --em=customer
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector