所以我有一个现有的数据库,但我无法按照此处列出的步骤进行操作: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文件转换为实体?
答案 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