如何指定Doctrine 2.2 / Symfony 2.2和PostgreSQL要使用的模式?

xvw2m8pv  于 2022-11-16  发布在  PostgreSQL
关注(0)|答案(2)|浏览(110)

我遇到的问题与此处报告的问题相同:Doctrine 2.2 wants to recreate all my tables
我使用的是PostgreSQL,我的表在公共模式中。
app/console doctrine:schema:update想要重新创建我的所有表,显然是因为它在用户模式中查找,而不是公共模式。我的Symfony应用程序工作正常,这看起来有点奇怪。
对于Symfony 2.2 / Doctrine 2.2,我在哪里指定模式?我似乎在任何文档中都找不到它。

4jb9z9bj

4jb9z9bj1#

如果您使用的是public模式,则不必执行任何特殊操作,因为PostgreSQL会自动回退到该模式。
但是,如果您要指定另一个模式,或者在PostgreSQL由于某种原因回退到另一个模式时强制使用public模式,则@Table注解具有schema属性:

use Doctrine\ORM\Mapping\Table;

/**
 * @Table(schema="some_schema")
 */
class Entity 
{
    // ...
}
8ehkhllq

8ehkhllq2#

对于symfony 5.4,请在实体文件中使用此

use Doctrine\ORM\Mapping as ORM;

#[ORM\Table(name: "schema_name.table_name")]
class Entity
{
...
}

我不知道它是否适用于最新版本

相关问题