我们有一个使用Doctrine ORM的Symfony(2.8.26)项目。我们设法在一个数据库中使用多个模式连接到PostgreSQL。现在,当我们更新任何实体并执行命令php app/console doctrine:schema:update时,它只更新PostgreSQL的公共模式。如何更新PostgresSQL中的所有模式?
php app/console doctrine:schema:update
uxh89sit1#
也许这是一个“为时已晚”的答案,但Doctrine将允许您简单地在Table注解中指定PostgreSQL模式:
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] #[ORM\Table(schema: 'name')] // <-- whatever schema you need here. class Entity { //... }
我发现它在任何地方都能很好地工作,除了自动生成的迁移。由于某种原因,schema工具没有将自定义schema插入到索引名称中,所以涉及索引删除的向下迁移失败,并抱怨索引不存在。
n53p2ov02#
您可以在配置文件中创建多个实体管理器。之后,您可以根据需要更新任何方案。让我们假设您有两个实体管理器:foo foo和bar。然后以下命令将更新相关模式:
foo
bar
php app/console doctrine:schema:update --force --em=foo php app/console doctrine:schema:update --force --em=bar
Symfony有很好的文档。
2条答案
按热度按时间uxh89sit1#
也许这是一个“为时已晚”的答案,但Doctrine将允许您简单地在Table注解中指定PostgreSQL模式:
我发现它在任何地方都能很好地工作,除了自动生成的迁移。由于某种原因,schema工具没有将自定义schema插入到索引名称中,所以涉及索引删除的向下迁移失败,并抱怨索引不存在。
n53p2ov02#
您可以在配置文件中创建多个实体管理器。之后,您可以根据需要更新任何方案。让我们假设您有两个实体管理器:foo
foo
和bar
。然后以下命令将更新相关模式:Symfony有很好的文档。