Skip to content

mysql-workbench/mwb-reverse-engineering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MySQL Workbench reverse code

Generate a stub-like of structs.h

  • All the files to be generated are already in /data/
  • This repository is used to update/patch model of mwb-dom
  • This repository is used to upgrade/maintain the model of mwb-dom

require

  • LLVM
  • PHP

Step 1

test/main.cc analyse c header source and generate a php stub-like in data/

Key point : GrtStructVisitor::visit(TranslationUnitAST *ast)

Step 2

src/.php generate /Mwb/Grt/.php

Step 3

Patch mysql-workbench/mwb-dom

Architecture overview

ReverseEngineering/
└── src/
    ├── Source/              (sources brutes, fournir des flux de données brutes.)
    │   ├── RdbmsInfoSource.php
    │   ├── (Structs[Stub|Header]Source.php)
    │   ├── Structs[Grt|Xml]Source.php
    │   └── GroupsDatatypeSource.php
    │
---------------------------------------------------------------------------------------
    ├── Inspection          (inspecteurs = analyse statique brute; extraction des données brutes; Chaque format de source donne lieu à un Inspector indépendant.)
    │   ├── Inspector       (interface; Un Inspector lit une seule source, sans logique métier.)
    │   └── InspectionResult
    │
    ├── Aggregation         (fusion des résultats multi-sources)
    │   │                    produire une "vision unifiée" de MWB
    │   ├── InspectionAggregator
    │   └── InspectionSummary
    │
    ├── Modeling            (modèles internes propres → classes, modules, relations…)
    │   └── DomainModel
---------------------------------------------------------------------------------------
    │
    ├── Interpretation      (interprétation des données inspectées)
    │   │                    C’est ici que tu déduis :
    │   │                    des types PHP depuis les types MySQL Workbench
    │   │                    la convention de nommage (CamelCase, PascalCase)
    │   │                    la structure logique (table → entity, colonne → property)
    │   ├── SimpleDataTypeInterpreter -- --------------------------------------------------------  (actuellement dans <root>/Inspection/RdbmsInfoInspector.php ) prend en entrée un qui prendra en entrée un InspectionSummary contenant le XML.
    │   ├── CharactereSetsInterpreter -- --------------------------------------------------------  (actuellement dans <root>/Inspection/RdbmsInfoInspector.php ) prend en entrée un qui prendra en entrée un InspectionSummary contenant le XML.
    │   ├── NamingInterpreter
    │   ├── ModelInterpreter
    │   └── RulesInterpreter
    │
    ├── Introspection       (reflection de code et injection dans placeholder)
    │
    └── Generation          (génération de code)
        └── DomGenerator

About

Reverse MySQL Workbench from source code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published