Skip to main content

Logo MERISOR

MERISOR

Du modèle métier au script SQL, dans une application de bureau libre.

Dernière release Python 3.10+ PySide6 Qualité Python PyPI Licence MIT

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

Construire le MCD

Fenêtre principale avec un MCD MotoGP

Décrire les attributs

Édition d'un type DECIMAL

Examiner le MLD Vérifier le SQL
Vue graphique du MLD Aperçu SQL PostgreSQL

Préparer un MCD avec l'IA

Aperçu et validation avant import IA

✨ Fonctionnalités principales

  • MCD graphique : entités, associations, attributs complets, identifiants composés, cardinalités, réflexives, n-aires et héritages ISA ;
  • canvas productif : grille, guides, alignement, sélection multiple, copier/coller, domaines, minimap, recherche et disposition automatique ;
  • contrôles : validation MERISE, qualité, normalisation 1NF/2NF/3NF, comparaison de versions et analyse d'impact ;
  • MLD explicable : PK/FK composées, provenance, associations historisées et bouton ⓘ Pourquoi ? ;
  • SQL multi-dialecte : PostgreSQL, SQLite, MariaDB/MySQL, aperçu et export ;
  • imports : JSON V1/V2, DDL et schémas statiques PWA/IndexedDB ;
  • exports : PNG, SVG, PDF, Mermaid, Graphviz, documentation Markdown/HTML/PDF, données de test et requêtes SQL simples ;
  • IA facultative : génération, conversation et réparation avec validation locale et confirmation humaine ;
  • historique : opérations importantes annulables avec Annuler/Rétablir.

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

  1. Créez une entité et ses attributs.
  2. Marquez au moins un attribut comme identifiant.
  3. Créez une association et reliez-la aux entités.
  4. Définissez (0,1), (0,N), (1,1) ou (1,N).
  5. Validez le MCD.
  6. Générez le MLD et utilisez ⓘ Pourquoi ?.
  7. 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.

🧱 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 → Centre de documentation… ou appuyez sur F1. Le manuel Markdown est inclus dans les paquets et reste également consultable sur GitHub.

⚠️ 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

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.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for merisor 0.10.0
File Size Uploaded Provenance Actions
merisor-0.10.0.tar.gz 1.0 MB With provenance Details for merisor-0.10.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for merisor 0.10.0
File Interpreter ABI Platform Actions
merisor-0.10.0-py3-none-any.whl Python 3 none any Details for merisor-0.10.0-py3-none-any.whl

Total release size: 2.1 MB

Release files / merisor-0.10.0.tar.gz

Download URL merisor-0.10.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
06f1239092f7ad71be37b5b65a5348e741efc32443ae8889b1626ed39dc38b94
BLAKE2b-256 checksum
How to use checksums
bbf233c86659758992ccfd8a5e97af6892efc43e8dfade915dd6a6376b1beced
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 2, 2026.

Transparency log

Release files / merisor-0.10.0-py3-none-any.whl

Download URL merisor-0.10.0-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
10a89e34f58eb928ae5e8c69652e159337eb8c1e2d076026a829a25668d86ac9
BLAKE2b-256 checksum
How to use checksums
197783ceb736421c4a62dc205fe750b914642614407b75bc25aaa1f0d1e0595f
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 2, 2026.

Transparency log

Security for merisor 0.10.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.

Select from 2 files

Attestation for merisor-0.10.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 2, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page