This is a Yii shell command to help generate model classes with relations descriptions.
If you use MySQL workbench for your database design, and have all the relationships defined on the diagram, this will help you to translated them into Yii model classes. So you can always maintain your database schema and relationships in the visual way, and not worry about create or update relations in model class files.
And it's a batch process, which read all the tables from the database connection, and parse the mwb file for corresponding relationships and create the model class file instantly.
It doesn't require innodb, so long as you've got relation on the ERD, it should work for you, and it can tell 1:1,1:M and M:M relationships.
Resources ¶
Documentation ¶
Requirements ¶
- Yii 1.0 or above
- MySQL Workbench 5.0 or above
- PHP 5 with zip and simplexml enabled
Installation ¶
- Extract the release file under 'framewok/cli'
- It should not overwrite any original Yii Framework file
We have developed it under the framework purely because it's not project specific and should be available to any newly created projects.
Usage ¶
At Yii shell, ~~~ > mwbmodel [mwb-file] ~~~ This command generates model classes with relationships parsed from MySQL workbench mwb file. * mwb-file: required, mwb file.
Change Log ¶
February 17, 2009 ¶
R2404 Minor Bug Fix Release
Fixed file path with backslash problem on windows platform
February 6, 2009 ¶
R2402 Bug fix release, tested with 1.0.2
Works better with composite keys (PK with more than one field)
February 5, 2009 ¶
R2393 Initial beta release.
Yii already does it
now also yii itself can automatically generates model files with relations already defined in the model class based on the db table
You are the guy!
Thanks so much!!!
Works also fine as extension
I just placed the extracted file in 'extensions' and configured my yiic like this:
'commandMap'=>array( 'mwbmodel'=>array( 'class'=>'application.extensions.mwbModelCommand_R2464.commands.shell.mwbModelCommand', 'templateFile'=>'/path/to/website/protected/extensions/mwbModelCommand_R2464/views/shell/model/model_relations.php', ), // other commands ), 'components'=>array( 'db'=>array( 'connectionString'=>'mysql:host=localhost;dbname=phtest1', 'username' => 'root', 'password' => 'pass'', ), ),
Model class files updates...
The problem is that every time i execute this cli command (for example 'cause i have a new model class file) the script reread every model in my mysql workbench file and ok it tells me if i want to overwrite an existing model class file but what if i want the cli command to update only my relationships in my model class file without overwrting all my custom code in it?
A complete necessity
Hi there,
Would like to say thanks for this extension. Would really love to see this extension able to translate mysql workbench views.
Keep up the good work
It's Great!
This is what I have been looking for.
Thanks!
Exelent tool
I been waiting for something like that, this help me very much.
Wonderful tool
This should be very useful for large systems with many related tables. It is also a good example of yiic command implementation. Thanks!
Great!
Looks great!
Thanks for your work, I will try it soon
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.