Symfony 2.8 - Doctrine schema强制只选择实体

时间:2017-10-09 17:16:11

标签: symfony doctrine-orm

我目前处于两个数据库(一个MySQL和SQLite数据库)的情况。我只将SQLite数据库用于两个日志实体,我需要将它与主(MySQL)数据库分开。是否有可能仅使用这两个实体更新SQLite数据库并保持MySQL数据库不变?我无法找到任何命令。

但是,我找到了以下选项:

  1. 在SQLite和MySQL数据库上使用doctrine schema update force。这个解决方案的缺点是我用其余的模式和带有两个日志实体的MySQL数据库污染了SQLite。
  2. 将两个日志实体放入一个单独的包中,以便我只能在特定的包上调用模式更新。
  3. 虽然这些解决方案解决了这个问题,但它们并不是最佳选择。 是否有可能仅为某个实体经理更新某些实体?

1 个答案:

答案 0 :(得分:0)

我们可以在您的配置中声明两个entitymanager之后执行此操作

orm:
    default_entity_manager: <your_mysql_em>
    entity_managers:
        mysql_em:
            connection: <mysql_connection_name>
            mappings:
                AppBundle:
                    type: 'annotation'
                    dir: 'Entity/'
         logger_em:
            connection: <sqlite_connection_name>
            mappings:
               AppBundle:
                    type: 'annotation'
                    dir: 'Logger/Entity'

您可以选择em来更新架构:

app/console doctrine:schema:update --em logger_em

请参阅文档https://symfony.com/doc/current/doctrine/multiple_entity_managers.html