我在两台服务器上部署了相同的symfony应用程序。 我使用两个实体管理器,一个名为defaul,在“本地”数据库上有连接,另一个在“远程”数据库上称为在线
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
online:
driver: pdo_mysql
host: '%database_host2%'
port: '%database_port2%'
dbname: '%database_name2%'
user: '%database_user2%'
password: '%database_password2%'
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: default
entity_managers:
default:
dql:
string_functions:
GROUP_CONCAT: AppBundle\DQL\GroupConcatFunction
connection: default
mappings:
LexikTranslationBundle: ~
AppBundle: ~
LilWorksStoreBundle: ~
online:
connection: online
mappings:
AppBundle: ~
LilWorksStoreBundle: ~
我将一些实体从远程数据库复制到服务中的本地应用程序。我的服务得到了两个实体经理
services:
app.syncro:
class: AppBundle\Service\Syncro
arguments: ['@doctrine.orm.default_entity_manager','@doctrine.orm.online_entity_manager']
我克隆了远程实体,并尝试将其保留在我的本地
中$user = $this->emRemote->getRepository("AppBundle:User")->find(1);
$clonedUser = clone $user;
$this->emLocal->persist($clonedUser->cloneUser());
$this->emLocal->flush();
刷新不会在本地数据库中保留,但会尝试在远处保留。
我的配置中的某些内容不起作用吗?也许我的实体仍然将远程数据库名称存储在代理中?