Symfony2从.yml文件生成Doctrine实体

时间:2012-02-04 01:08:42

标签: symfony doctrine-orm

所以我有一个现有的数据库,但我无法按照此处列出的步骤进行操作:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html因为我的一些表有主键的外键。

我的解决方案是创建没有外键约束的数据库副本,并首先从THAT生成.yaml文件。

所以现在我有./src/My/MainBundle/Resources/config/doctrine/metadata/orm

中的XXX.orm.yml文件

接下来,我尝试使用此命令将这些.yml文件转换为带注释的Entity类: php app / console doctrine:mapping:import MyMainBundle annotation 但是忽略了我的.yml文件。它要么在没有外键的情况下从我的数据库生成泛型类,要么在我的真实数据库中使用它时会抛出错误。它甚至从未查看我的.yml文件。

所以我想知道的是,如何将* .orm.yml文件转换为实体?

4 个答案:

答案 0 :(得分:4)

我不是百分之百确定这是否是我必须要解决的问题,但我认为解决方案就像移动我的.orm.yml文件一样简单

./src/My/MainBundle/Resources/config/doctrine/metadata/orm

./src/My/MainBundle/Resources/config/doctrine

并正在运行

php app/console doctrine:mapping:import MyMainBundle annotation --path="./src"

答案 1 :(得分:2)

- path不是命令doctrine:mapping:import

的选项

答案 2 :(得分:2)

import之后使用php bin/console doctrine:mapping:convert annotation src 将yaml转换为实体注释:

php bin/console doctrine:generate:entities yourBundle

有关更多信息,请参阅--help。

要强制覆盖实体文件,请使用--force选项。

要创建访问者(getter和setter),请使用

  <p>the code is on jfiddle :) </p>  

请勿忘记检查yml文件是否不会覆盖注释更改的行为......

此致

答案 3 :(得分:0)

之后:

php bin/console doctrine:mapping:import YourBundle yml

使用:

php bin/console doctrine:generate:entities YourBundle