Symfony错误持久化数据库与两个实体经理合作

时间:2017-09-27 12:32:31

标签: symfony entity entitymanager

我在两台服务器上部署了相同的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();

刷新不会在本地数据库中保留,但会尝试在远处保留。

我的配置中的某些内容不起作用吗?也许我的实体仍然将远程数据库名称存储在代理中?

0 个答案:

没有答案