生成有关现有数据库的映射信息使用Doctrine 2

时间:2011-01-30 18:02:10

标签: zend-framework doctrine-orm

我已经在Zend Framework 1.10上设置了Doctrine 2并且正确设置了所有自动加载,包括application.ini中所有必要的配置设置。我现在需要做的(或者我相信)是使用映射信息创建我的Entity类,以便实体管理器可以使用我的数据库。

我不想做的是手工编写实体类,因为这需要很长时间,但我似乎无法确定下一步该做什么。命令行工具是否具有从现有模式创建实体,代理和所有其他必要类的功能?

2 个答案:

答案 0 :(得分:3)

您可以使用Doctrine http://www.doctrine-project.org/docs/orm/2.0/en/reference/tools.html#reverse-engineering

的逆向工程工具

但它也没有检测到参考文献中提到的所有内容。

您最好的选择是手动IMO进行逆向工程并填补其余部分。

答案 1 :(得分:3)

使用命令行工具:

 ./bin/doctrine orm:convert-mapping --from-database xml ./bin/tmp

这将生成您的xml映射。然后,确保在配置Doctrine CLI工具时将驱动程序更改为 XmlDriver

$driver = new \Doctrine\ORM\Mapping\Driver\XmlDriver(array(
    APPLICATION_PATH . '/../bin/tmp'             
));
$config->setMetadataDriverImpl($driver);

我的CLI配置使用Zend_Application,所以我通常在我的Bootstrap中更改它。

现在运行

./bin/doctrine orm:generate-entities ./bin/tmp

要使orm:generate-entities从xml转换为实体,需要Xml元数据驱动程序。如果使用默认注释驱动程序,它会将注释驱动程序路径中的实体转换为不是我们想要的实体。

相关问题