Il mio obiettivo è di ottenere l'accesso a più database in One Project Bundle.Symfony2: Come generare entità da più database esistenti nel pacchetto SAME?
Ho letto attraverso la documentazione di Symfony2 e sono riusciti a fare i seguenti:
- configure multiple connections for different Bundles
generate Entities from ONE Existing Database utilizzando:
php app/console doctrine:mapping:import AcmeBlogBundle annotation php app/console doctrine:generate:entities AcmeBlogBundle
ma non riesco a trovare il modo a genera entità da più database esistenti nel pacchetto SAME in modo che sia possibile accedere a più database in un unico pacchetto. Qualche idea?
P.S. Non ho familiarità con Doctrine. Quindi in realtà se ci sono modi per fare Symfony2 senza Doctrine, apprezzerei anche.
UPDATE # 1:
Cerad's answer viene abbastanza vicino. Tuttavia, un problema non è ancora risolto. Dato che ho lo stesso nome di tabella in diversi database, è meglio organizzarli in cartelle separate all'interno della cartella Entità. Ho controllato post simili come this e that. Ma le soluzioni non funzionano per me. La loro soluzione mette semplicemente tutte le entità direttamente nella cartella Entity, ignorando l'opzione dir specificata in config.yml. Esistono soluzioni alternative per questo problema?
grazie per la risposta. Ancora un problema non ancora risolto. Dato che ho lo stesso nome di tabella in diversi database. Quindi è meglio organizzarli in cartelle separate all'interno della cartella Entità. Ho controllato http://stackoverflow.com/questions/13765785/doctrine-generate-entities-namespace-issue ma sembra che non possa essere fatto bene? Esistono soluzioni alternative per questo problema – Capitaine
L'unica soluzione diretta consiste nell'aggiungere il nome del database al nome della tabella. Ma farlo significa che i vari comandi di doctrine smetteranno di funzionare e significa nomi di database di codifica rigidi. A seconda delle esigenze, è possibile che sia possibile utilizzare le viste sql per modificare sostanzialmente i nomi delle tabelle. Penso che starai meglio usando solo bundle multipli. – Cerad
Dovresti creare una nuova installazione di symfony, generare un pacchetto abbattere le tabelle e quindi modificare gli spazi dei nomi e copiare i file nel pacchetto esistente. È un dolore, ma è più facile che tentare di incappare nel generatore di mappe. Puoi sicuramente avere spazi dei nomi sotto l'entità (ho diversi livelli nei miei progetti). 'Bundle/Entity/ThingsThatMakeMeMad/SpilledMilk.php' ecc. –