MySQL Workbench Schema Exporter is a library to
transform the MySQL Workbench model (*.mwb
) to useful another schemas.
It is inspired by mysql-workbench-doctrine-plugin.
Currently, MySQL Workbench Schema Exporter can export the model to various schemas using a formatter plugin:
- Doctrine 1.0 YAML Schema.
- Doctrine 2.0 YAML Schema, Annotation Classes or Annotation Classes with Zend Framework 2 Input Filter support.
- Sequelize.
- Propel XML Schema and YAML Schema.
- Sencha ExtJS3 Model and Sencha ExtJS4 Model.
- Zend DbTable and Zend Rest Controller.
The actual conversion to another schema is done using an exporter. These plugins are available in subprojects:
- Doctrine1 Exporter
- Doctrine2 Exporter
- Propel1 Exporter
- Sencha ExtJS Exporter
- Sequelize Exporter
- Zend Framework 1 Exporter
- PHP 7.2+
- Composer to install the dependencies
- In your project directory issue:
composer require --dev mysql-workbench-schema-exporter/mysql-workbench-schema-exporter
-
You then can invoke the CLI script using
vendor/bin/mysql-workbench-schema-export
. -
You can directly require an exporter for your project:
composer require --dev mysql-workbench-schema-exporter/doctrine2-exporter
The mysql-workbench-schema-export
command helps export a workbench schema model directly
from command line. It has feature to customize export configuration before exporting.
By default, it will use config file export.json
located in the current directory to supply
the parameter if it find it.
Command usage:
vendor/bin/mysql-workbench-schema-export [options] FILE [DEST]
Where:
-
FILE
The MySQL Workbench model file to export.
-
DEST
The destination directory (optional), if not specified current directory assumed.
Options:
--export=type
Choose the result of the export, supported type can be obtained using --list-exporter
.
If this option is omitted and no config file found, the CLI will prompt to choose which exporter
to use.
--config=file
Read export parameters from file (in JSON format).
--save-config
Save export parameters to file export.json
, later can be used as value for --config=file
.
--list-exporter
Show all available exporter.
--no-auto-config
Disable automatic config file lookup.
--zip
Compress the result.
--help
Show the usage (or suppress any parameters).
Sample usage:
vendor/bin/mysql-workbench-schema-export --export=doctrine1-yaml example/data/test.mwb ./generated
vendor/bin/mysql-workbench-schema-export --zip example/data/test.mwb
MySQL Workbench Schema Exporter can be configured at runtime using methods:
- Configuration files.
- Model comment, either applied to table, column, or foreign key object.
Refers to exporter project to show detailed information.
- Doctrine1 Exporter
- Doctrine2 Exporter
- Propel1 Exporter
- Sencha ExtJS Exporter
- Sequelize Exporter
- Zend Framework 1 Exporter
-
{MwbExporter:external}true{/MwbExporter:external}
(applied to Table, View)Mark table/view as external to skip table/view code generation. For Doctrine use
{d:external}true{/d:external}
instead. -
{MwbExporter:category}mycategory{/MwbExporter:category}
(applied to Table)Table category used to groups the table for sorting. This way, generated table output can be sorted as you need such as in Propel YAML schema (obviously useful for exporter which results in single file output).
If you want to use MySQL Workbench Schema Exporter as a library for other project. See the included usage in the example
folder.