Usually, to create and modify database only ORM
Designer and built-in Doctrine 2 functions are sufficient (and you can
stop using Workbench or at least use it separately).
The ORM point of view does not "care about the DB", it just assumes some DB is used and focuses on entities and their relations. Though DB can be configured by Doctrine2 (to a degree using the ORM properties), it might not be enough for everybody.
The problem is the MWB does not handle the abstraction layer at all, so it is not possible to integrate it to a single continuous workflow (DB to MWB to ORM Designer and vice versa). You can import the MWB schema for the first time so it is easier to start using ORM Designer on your existing projects. After first import, MySQL Workbench and ORM Designer have to be kept separate.
The import from MWB is best used as a single time measure, to convert
your standing changes to ORM Designer project and then you convert
your definition files do database (and back) using the Doctine 2
convert-mapping commands. Because MySQL Workbench
does not support ORM properties, you could lose lot of your work on
each import from the database, if you used MWB in each import of the
changes of the database.
So the recommended workflow would be:
A) First time import of the project you already have in MySQL Workbench:
1)Import the MWB file to ORM Designer
2)Edit the model and export the definition files using ORM Designer
3)Project the definition files to databasue using Doctrine commands
B)Any subsequent modifications of the database:
1)Generate definition files from the DB using Doctrine
2)Import the definitions files to ORM Designer project, all attributes
will properly merge
4)Edit the project and export changes
2)Update the database using Doctrine commands
So you can keep administering the DB with MySQL anytime you need to
make direct changes using MySQL Workbench, you can generate new
definition files using Doctrine and import these to ORM Designer.
This is also the only way how to keep separate names for your entities
in your model (UserAddresses) and database (user_addresses), because
these are handled by ORM properties, and as I mentioned before MySQL
Workbench does not support these. On the other hand this can be
handled by ORM Designer quite easily, just define your entity as shown
on the screenshot:
Also renaming of the entities might be getting a little easier by
using templates (by using the on-update template you can automatically
generate the table name from the entity name):
The template similar to one you need is in our template library under
the example number 3: