Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony2 Generate Doctrine Entities from .yml files

So I have an existing database but I was unable to follow the steps outlined here: http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html because some of my tables have foreign keys for primary keys.

My solution has been to create a copy of the database without foreign key constraints and generate the .yaml files from THAT first.

So now I have XXX.orm.yml files in ./src/My/MainBundle/Resources/config/doctrine/metadata/orm

Next I tried to turn these .yml files into Entity classes with annotations by using this command: php app/console doctrine:mapping:import MyMainBundle annotation However that ignores my .yml files. It either generates the generic classes from my database without foreign keys, or it throws an error if I use it on my real database. It never even looks at my .yml files.

So all I want to know, is how can I transform the *.orm.yml files to Entities?

like image 353
Matt Avatar asked Jan 18 '23 13:01

Matt


2 Answers

I'm not 100% sure if this is all I had to do to fix it, but I think the solution was as simple as moving my .orm.yml files from

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

to

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

and running

php app/console doctrine:mapping:import MyMainBundle annotation --path="./src"
like image 133
Matt Avatar answered Jan 25 '23 15:01

Matt


Use convert after import to convert yaml to entity annotations :

php bin/console doctrine:mapping:convert annotation src

See --help for further informations.

To force override entity files use --force option.

To create accessors (getters and setters) use

php bin/console doctrine:generate:entities yourBundle

Don't forget to check if yml files don't override behavior of annotation changes...

Regards

like image 35
Jean-Luc Barat Avatar answered Jan 25 '23 14:01

Jean-Luc Barat