配置symfony2中的两个数据库
Two databases in the configuration symfony2
我正在尝试配置为使用两个数据库,并且我有这样的配置:
doctrine:
dbal:
connections:
default:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
zaweb:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: "zyabypoel"
user: %database_user%
password: %database_password%
types:
json: Sonata\Doctrine\Types\JsonType
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
zaweb:
connection: zaweb
mappings:
ZaWebMenuBundle: ~
ZaWebGeoBundle: ~
ZaWebApiBundle: ~
ZaWebSiteBundle: ~
ZaWebAdminBundle: ~
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
result_cache_driver: apc
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
当我 运行 php app/console doctrine:database:create --connection=zaweb
我得到错误:
无法识别的选项 "filters, result_cache_driver, auto_mapping" 在 "doctrine.orm"
下
当我添加第二个连接时出现此错误,但事实并非如此。为什么?
filters
属于 doctrine.orm.entity_managers.manager
。所以你必须把这个选项移到你文件的右边,所以它不在实体管理器旁边,而是在实体管理器里面。
auto_mapping
和 result_cache_driver
也属于具体的 entity_manager
,例如zaweb
.
里面
看这里:http://symfony.com/doc/current/reference/configuration/doctrine.html
编辑:抱歉,现在我也弄乱了缩进。现在修好了。
最后可能实际上看起来像这个:
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
zaweb:
connection: zaweb
result_cache_driver: apc
auto_mapping: true
mappings:
ZaWebMenuBundle: ~
ZaWebGeoBundle: ~
ZaWebApiBundle: ~
ZaWebSiteBundle: ~
ZaWebAdminBundle: ~
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
auto_generate_proxy_classes: %kernel.debug%
我正在尝试配置为使用两个数据库,并且我有这样的配置:
doctrine:
dbal:
connections:
default:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
zaweb:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: "zyabypoel"
user: %database_user%
password: %database_password%
types:
json: Sonata\Doctrine\Types\JsonType
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
zaweb:
connection: zaweb
mappings:
ZaWebMenuBundle: ~
ZaWebGeoBundle: ~
ZaWebApiBundle: ~
ZaWebSiteBundle: ~
ZaWebAdminBundle: ~
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
result_cache_driver: apc
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
当我 运行 php app/console doctrine:database:create --connection=zaweb
我得到错误:
无法识别的选项 "filters, result_cache_driver, auto_mapping" 在 "doctrine.orm"
当我添加第二个连接时出现此错误,但事实并非如此。为什么?
filters
属于 doctrine.orm.entity_managers.manager
。所以你必须把这个选项移到你文件的右边,所以它不在实体管理器旁边,而是在实体管理器里面。
auto_mapping
和 result_cache_driver
也属于具体的 entity_manager
,例如zaweb
.
看这里:http://symfony.com/doc/current/reference/configuration/doctrine.html
编辑:抱歉,现在我也弄乱了缩进。现在修好了。 最后可能实际上看起来像这个:
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
zaweb:
connection: zaweb
result_cache_driver: apc
auto_mapping: true
mappings:
ZaWebMenuBundle: ~
ZaWebGeoBundle: ~
ZaWebApiBundle: ~
ZaWebSiteBundle: ~
ZaWebAdminBundle: ~
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true
auto_generate_proxy_classes: %kernel.debug%