MERISOR
Du modèle métier au script SQL, dans une application de bureau libre.
MERISOR est un éditeur graphique MERISE pour Linux, destiné aux étudiants, enseignants, analystes, développeurs et architectes de données. Il permet de concevoir un MCD, contrôler sa cohérence, produire un MLD structuré et générer du SQL PostgreSQL, SQLite ou MariaDB/MySQL.
Le modèle peut aussi être proposé ou analysé avec OpenRouter, mais aucune réponse IA ne modifie le document sans validation, aperçu et confirmation.
🗺️ Du besoin métier aux livrables
flowchart TB
DESCRIPTION["📝 Description métier"]
AI["🤖 Assistant IA<br/>facultatif"]
PREVIEW["👁️ Aperçu et confirmation"]
MCD["🧩 MCD<br/>SOURCE DE VÉRITÉ"]
VALIDATION["✅ Validation MERISE"]
IMPACT["🔎 Analyse d'impact"]
DOCUMENTATION["📚 Documentation"]
MLD["🗂️ MLD structuré<br/>tables · colonnes · PK · FK"]
DOCS["📄 Markdown · HTML · PDF"]
SQL["🛢️ Génération SQL<br/>aperçu et export uniquement"]
POSTGRES[(PostgreSQL)]
SQLITE[(SQLite)]
MYSQL[(MariaDB / MySQL)]
DESCRIPTION -->|Conception assistée| AI
AI --> PREVIEW
PREVIEW -->|Import confirmé| MCD
DESCRIPTION -->|Modélisation manuelle| MCD
MCD --> VALIDATION
MCD --> IMPACT
MCD --> DOCUMENTATION
VALIDATION -->|MCD valide| MLD
IMPACT -.->|Provenance MCD → MLD| MLD
DOCUMENTATION --> DOCS
MLD --> SQL
SQL --> POSTGRES
SQL --> SQLITE
SQL --> MYSQL
classDef truth fill:#fff4cc,stroke:#a56b00,stroke-width:3px,color:#302400;
classDef conceptual fill:#e8f1fb,stroke:#315d8a,stroke-width:2px,color:#172b3a;
classDef output fill:#e9f7ef,stroke:#287a50,stroke-width:2px,color:#173c2b;
classDef optional fill:#f2eafa,stroke:#7651a8,stroke-width:2px,color:#312044;
class MCD truth;
class VALIDATION,IMPACT,MLD conceptual;
class DOCUMENTATION,DOCS,SQL,POSTGRES,SQLITE,MYSQL output;
class AI,PREVIEW optional;
📸 Aperçu
Atelier UI/UX 2.0
Le README conserve volontairement une seule capture représentative et à jour, afin de rester rapide à parcourir et de ne pas montrer d’anciennes interfaces. Le parcours reste visible de bout en bout : Concevoir → Vérifier → Transformer → Produire. Les espaces Validation, MLD, SQL, Assistant IA et Documentation s’ouvrent dans la fenêtre principale. Consultez le rapport UI/UX 2.0 pour les autres captures à jour, les raccourcis et les décisions de conception.
✨ Fonctionnalités principales
- MCD graphique : entités, associations, attributs complets, identifiants composés, cardinalités, réflexives, n-aires et héritages ISA ;
- dictionnaire de données : descriptions, fiches d'attributs, définitions métier et synonymes persistés puis repris dans la documentation ;
- canvas productif : grille, guides, alignement, sélection multiple, copier/coller, domaines, minimap, recherche et disposition automatique ;
- interface guidée : accueil, workflow permanent, thèmes clair/sombre,
validation intégrée, recherche globale
Ctrl+Shift+Fet paletteCtrl+K; - contrôles : validation MERISE, qualité séparée en erreurs, risques et suggestions, score heuristique explicable, normalisation 1NF/2NF/3NF, scénarios métier fonctionnels, mode étudiant avec barème explicable, comparaison de versions et mode Et si… ? avant suppression avec confirmation explicite ;
- MLD explicable et traçable : origine MCD, règle de transformation, conséquence MLD et extrait SQL accessibles avec ⓘ Pourquoi ? ;
- SQL multi-dialecte : PostgreSQL, SQLite, MariaDB/MySQL, aperçu et export ;
- imports : JSON V1/V2, DDL et schémas statiques PWA/IndexedDB, avec une archive de démonstration prête à tester ;
- exports : PNG, SVG, PDF, Mermaid, Graphviz, documentation Markdown/HTML/PDF, données de test et requêtes SQL simples ;
- IA facultative : assistant de modélisation guidé, génération et réparation avec validation locale, normalisation prudente des réponses et confirmation humaine ;
- historique : opérations importantes annulables avec Annuler/Rétablir.
Le logo MERISOR est utilisé de manière cohérente dans la fenêtre principale, le lanceur desktop, les paquets et cette page.
Le détail se trouve dans le guide utilisateur.
🚀 Installation rapide
AppImage
Téléchargez l'AppImage depuis la dernière release :
chmod +x MERISOR-*.AppImage
./MERISOR-*.AppImage
Debian / Ubuntu
sudo apt install ./merisor_*_amd64.deb
PyPI avec pipx
pipx install merisor
merisor
Avec le trousseau sécurisé OpenRouter :
pipx install "merisor[ai]"
Depuis les sources
git clone https://github.com/nouhailler/merisor.git
cd merisor
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[test,ai]"
python -m merisor
Voir la documentation d'installation développeur.
🖱️ Premier modèle
- Créez une entité et ses attributs.
- Marquez au moins un attribut comme identifiant.
- Créez une association et reliez-la aux entités.
- Définissez
(0,1),(0,N),(1,1)ou(1,N). - Validez le MCD.
- Générez le MLD et utilisez ⓘ Pourquoi ?.
- Générez puis exportez le SQL du dialecte choisi.
Le tutoriel détaillé est disponible dans Prise en main. Vous pouvez également ouvrir l'exemple MotoGP ou tester le reverse-engineering avec la PWA IndexedDB de démonstration.
🧱 Architecture simplifiée
MCDModel ──> McdToMldTransformer ──> MLDModel ──> SQLGenerator
│ │ │
└── JSON + validation └── vues └── dialectes
Le domaine métier ne dépend pas de Qt. Les mutations passent par le contrôleur et les commandes annulables. Consultez Architecture et les ADR.
📚 Documentation
Dans l'application, ouvrez Documentation → Documentation du projet pour la
vue transversale, ou appuyez sur F1 pour le portail complet. Le manuel
Markdown est inclus dans les paquets et reste également consultable sur GitHub.
- Documentation du projet
- Portail documentaire
- Guide utilisateur
- Concepts MERISE
- Règles MCD → MLD
- Format JSON V2
- Architecture
- Sécurité
- Contribuer
- Journal des changements
⚠️ Limites principales
- pas de connexion, migration ou exécution automatique sur une base active ;
- le reverse engineering DDL ne retrouve pas toutes les intentions MERISE ;
- héritage multiple et cycles ISA refusés ;
- les stratégies ISA aplaties refusent une association portée par une table
supprimée ; utilisez
JOINED; - une association 1:1 porteuse d'attributs doit être matérialisée ;
- les contrôles de normalisation dépendent des règles métier déclarées ;
- les fonctions IA dépendent des quotas OpenRouter et peuvent se tromper.
La liste expliquée est maintenue dans la FAQ et les guides conceptuels.
🤝 Contribuer
Les contributions sont bienvenues. Avant une pull request :
ruff format --check .
ruff check .
mypy
QT_QPA_PLATFORM=offscreen pytest
La CI exécute en plus les scripts générés sur de véritables moteurs temporaires SQLite, PostgreSQL 16 et MariaDB 11. Elle vérifie les tables, PK/FK, insertions valides et le rejet des références inexistantes. Consultez le guide des tests.
Lisez CONTRIBUTING.md et ouvrez une issue pour discuter d'une évolution importante.
📄 Licence
MERISOR est distribué sous licence MIT.
Conçu pour rendre MERISE accessible sans sacrifier la structure du modèle.
Metadata
Release files for merisor 0.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| merisor-0.12.0.tar.gz | 1.9 MB | With provenance | Details for merisor-0.12.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| merisor-0.12.0-py3-none-any.whl | Python 3 | none | any | Details for merisor-0.12.0-py3-none-any.whl |
Total release size: 3.9 MB
Release files / merisor-0.12.0.tar.gz
| Download URL | merisor-0.12.0.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
21b7f2502aec88d82b513c3e1904424219607e4584b2eab2157124b7b8557dcb
|
|
BLAKE2b-256 checksum How to use checksums |
11f5955d5fc723f79e1ce10266ee691642352a7f745edf536f5e58c09dfebf57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / merisor-0.12.0-py3-none-any.whl
| Download URL | merisor-0.12.0-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
62219f0316b929d2878f6525546fa4af3b2bd3fbad82a0f12c6ab3dfb46e3c5c
|
|
BLAKE2b-256 checksum How to use checksums |
680dad87fbcc0c5b0d00cb99f4238fdae18e3b4d12356f180f5b864f35598212
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logSecurity for merisor 0.12.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for merisor-0.12.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.