Bonjour,
Je gère un gros projet pour plus de 120 clients sur symfony 3.4 et une base de donnée postresql.
chaque client a son schema (environ 500go de données par client)
Le projet est composé de 2 Bundles
- l’appBundle est le core du projet, il gère les données des 122 clients (les posts, les stats… )
- ParametreBundle gère les caractéristiques communes aux 120 clients (les profils, … )
Afin que doctrine gère correctement, j’ai surchargé son driver pgsql comme proposé sur stackoverflow
Et ca fonctionne au poil (sur plusieurs de mes projets)
Mon config.yml ressemble a ca:
doctrine:
dbal:
default_connection : default
connections:
default:
driver: pdo_pgsql
driver_class: AppBundle\Doctrine\DBAL\Driver\PDOPgSql\Driver
options:
search_path: public
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
client001:
driver: pdo_pgsql
driver_class: AppBundle\Doctrine\DBAL\Driver\PDOPgSql\Driver
options:
search_path: client001
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
ParametreBundle: ~
naming_strategy: doctrine.orm.naming_strategy.underscore
client001:
connection: client001
mappings:
AppBundle: ~
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_generate_proxy_classes: '%kernel.debug%'
php bin/console do:sc:cr --em=default
php bin/console do:sc:cr --em=client001
php bin/console do:sc:up --force --em=default
fonctionnent parfaitement.
par contre
php bin/console do:sc:up --force --em=client001
plante
SQLSTATE[42P01]: Undefined table: 7 ERREUR: la relation « libelle_c_f_id_seq » n'existe pas
LINE 1: SELECT min_value, increment_by FROM "libelle_c_f_id_seq"
^
In PDOConnection.php line 106:
SQLSTATE[42P01]: Undefined table: 7 ERREUR: la relation « libelle_c_f_id_seq » n'existe pas
LINE 1: SELECT min_value, increment_by FROM "libelle_c_f_id_seq"
sachant que libelleCF est une entity de ParametreBundle et pas d’AppBundle…
Je sèche complètement…
edit: j’avance, lorsque je drop le schema public, ca marche très bien. c’est comme si apres avoir mis à jour l’entitymanager client001 il voulait aussi passer le default
+0
-0