Doctrine ORM 2 - 从数据库生成没有序列的实体

时间:2013-03-28 04:16:02

标签: php postgresql doctrine-orm annotations

我需要使用postgresql在数据库中生成所有实体关系。我可以使用下面的脚本生成它们。但是,并非所有表都生成,只有那些具有SEQUENCES的表。您知道如何正确生成所有表格,而不仅仅是那些序列有限的表格吗?

[php]

[...]
$em->getConfiguration()->setMetadataDriverImpl(
    new \Doctrine\ORM\Mapping\Driver\DatabaseDriver(
        $em->getConnection()->getSchemaManager()
    )
);
$cmf = new Doctrine\ORM\Tools\DisconnectedClassMetadataFactory();
$cmf->setEntityManager($em);
$metadata = $cmf->getAllMetadata();

$cme = new \Doctrine\ORM\Tools\Export\ClassMetadataExporter();

$entityGenerator = new \Doctrine\ORM\Tools\EntityGenerator();
$entityGenerator->setAnnotationPrefix("");
$exporter = $cme->getExporter('annotation',  __DIR__ . '/entities');
$exporter->setEntityGenerator($entityGenerator);
$exporter->setMetadata($metadata);
$etg = new \Doctrine\ORM\Tools\EntityGenerator;
$exporter->setEntityGenerator($etg);
$exporter->export();

1 个答案:

答案 0 :(得分:1)

Doctrine不仅生成具有表SEQUENCES的实体。事实上,Doctrine的行为是不同的,因为生成SEQUENCES或不生成实体。

不一定每个表都是实体,因为实体可能具有可能不代表新实体的关系。

那么如何使用已经有效!