SchemaSpy est un analyseur de métadonnées de base de données. Il aide vos administrateurs et développeurs de bases de données à visualiser, naviguer et comprendre votre modèle de données. Avec un rapport HTML facile à utiliser, parcourir le diagramme entité-relation n'a jamais été aussi simple. Notre vitrine de produits est disponible sur http://schemaspy.org/sample/index.html.
Installation
SchemaSpy est une application autonome sans interface graphique. Téléchargez simplement le dernier fichier JAR ou l'image Docker et vous êtes prêt à partir ! Pour utiliser SchemaSpy depuis Maven, veuillez consulter le chapitre Maven ci-dessous.
# replace '6.2.4' with latest version
curl -L https://github.com/schemaspy/schemaspy/releases/download/v6.2.4/schemaspy-6.2.4.jar
--output ~/Downloads/schemaspy.jar
Pour les corrections de bogues inédites et les fonctionnalités en cours, téléchargez notre instantané JAR ou utilisez snapshot
de la balise Docker.
Maven
SchemaSpy publie deux types de fichiers JAR : un JAR simple et un gros JAR incluant toutes les dépendances. Les deux JAR sont publiés sur Maven Central. Le gros JAR est également joint aux versions sur GitHub. Le badge « maven central » en haut de cette page vous mènera directement à la dernière version de Maven Central.
Le Maven GAV des deux artefacts est le suivant :
- JAR simple :
org.schemaspy:schemaspy:<version>
- fat JAR :
org.schemaspy:schemaspy:<version>:app
← notez le classificateur app
Démarrage rapide
Supposons que vous utilisez PostgreSQL (11 ou version ultérieure). Tout d’abord, téléchargez leur pilote JDBC.
curl -L https://jdbc.postgresql.org/download/postgresql-42.5.4.jar
--output ~/Downloads/jdbc-driver.jar
Exécutez ensuite SchemaSpy sur votre base de données et vous êtes prêt à la parcourir dans DIRECTORY/index.html
.
java -jar ~/Downloads/schemaspy.jar
-t pgsql11
-dp ~/Downloads/jdbc-driver.jar
-db DATABASE
-host SERVER
-port 5432
-u USER
-p PASSWORD
-o DIRECTORY
Si vous n'utilisez pas PostgreSQL, pas de panique ! Prêt à l'emploi, SchemaSpy prend en charge plus d'une douzaine de bases de données différentes. Répertoriez-les en utilisant -dbhelp
. Pas encore assez ? Tant que votre base de données dispose d'un pilote JDBC, vous pouvez le connecter à SchemaSpy.
Documentation et FAQ
Nous hébergeons notre documentation sur Read the Docs. Assurez-vous de consulter la section sur le dépannage des problèmes courants.
Principaux cas d'utilisation
SchemaSpy couvre de nombreux cas d'utilisation pour l'analyse et la documentation de bases de données. Assurez-vous de consulter les guides fournis par la communauté plus loin dans ce README.
Documentation de base de données à la demande
La méthode privilégiée pour documenter les bases de données consiste à utiliser des diagrammes entité-relation (ER). Cependant, dessiner ces diagrammes manuellement est un processus tellement long et sujet aux erreurs que nous ne les dessinons presque jamais dans la pratique. Lorsque les diagrammes sont dessinés, ils restent rarement à jour. Avec SchemaSpy, ce n'est plus un problème. Les diagrammes peuvent être générés rapidement et même dans le cadre de votre flux de travail CI/CD pour garantir qu'il est toujours à jour.
Votre base de données en chiffres
SchemaSpy peut collecter différents types de statistiques intéressantes pour décrire la forme de la structure de votre base de données. Explorez plus en profondeur ces statistiques directement dans le rapport ou exportez-les vers Excel ou CSV pour une analyse plus approfondie du contrôle qualité.
Gardez les données confidentielles
De nos jours, les données d’une entreprise peuvent constituer son atout le plus précieux. Puisque SchemaSpy ne lit que les informations structurelles, il fonctionne tout aussi bien sur une réplique de base de données vide. Cela signifie que le rapport peut être partagé sans crainte pour une analyse par un tiers.
Détecter les constructions sous-optimales
SchemaSpy intègre des connaissances sur les meilleures pratiques en matière de conception de bases de données. Il peut localiser et signaler des anomalies telles que des index manquants, des relations implicites et des tables orphelines.
Communauté
Bienvenue dans la communauté SchemaSpy ! Le simple fait de lire ce fichier ou d'utiliser l'outil signifie que vous faites partie de notre communauté et que vous contribuez à l'avenir du projet. Nous sommes reconnaissants de vous avoir parmi nous !
Certains membres de notre communauté ont déployé des efforts supplémentaires pour partager SchemaSpy avec davantage de personnes, ont demandé à leur entreprise de fournir une aide financière ou ont décidé d'améliorer le logiciel. Nous aimerions avoir l'espace pour remercier chacun d'entre vous individuellement, car chaque star, tweet ou autre activité de Github nous rappelle que notre travail est apprécié.
Remerciements spéciaux
Pour créer les cinq premières versions de SchemaSpy :
Pour perpétuer SchemaSpy depuis :
- Rafal Kasa,
- Nils Petzäll, et
- Jesper Olsson
Pour créer des tutoriels et des guides pour la communauté :
- ?? SQLite et SQLiteTutoriel Schemaspy by Geek
- ?? Documentation automatique des bases de données sur le site SchemaSpy de Pavel Tišnovský
- ?? Datenbank-Analyse avec SchemaSpy par Michael Jentsch
- ?? Petit conseil : une structure de banque de données verstehen mit Hilfe von schemaspy par von Irving Tschepke
- ?? ▶️ Exemple d'utilisation de schémaspy par MGS Educación, Tecnología y Juventud
- ?? ▶️ Générer un modèle à partir d'une base de données avec schemaSpy par Inforgledys
- ?? Comment documenter vos bases de données avec SchemaSpy par Jesus Jimenez Herrera
- ?? Et si nous documentions la base de données ? ... SchemaSpy al rescate par Víctor Madrid
- ?? ▶️ Une DOC AUTOMATIQUE avec SchemaSpy (et SYMFONY et GITLAB) par YoanDev
- ?? Documentation automatique d'une App Symfony avec SchemaSpy et GitLab ! par YoanDev
- ?? Documentez une base de données avec SchemaSpy by Data 4 Everyone !
- ?? SchemaSpy par 坂井裕介
- ?? SchemaSpyでER図を生成する Par @onozaty
- ?? ▶️ SchemaSpy - facile à utiliser et j'ai sauvé mon entreprise ! Par Dev Multitâche
- ?? Documentation bancaire avec Schemaspy Par Krisnamourt Silva
- ?? Base de données SchemaSpy par @icegotcha
- ?? Utilisation de SchemaSpy par Pham Xuan Dung
- Outils électriques Java par John Ferguson Smart
- Du monolithe aux microservices : maintenir la productivité tout en démêlant le système par Sam Newman
- Documenter votre base de données avec SchemaSpy par Robin Tegg
- Documenter votre base de données relationnelle à l'aide de SchemaSpy par Orlando L Otero
- Comment créer un ERD (Entity Relationship Diagram) par les technologies Cybrosys
- Comment documenter une base de données avec SchemaSpy par Data 4 Everyone !
- Comment utiliser SchemaSpy pour documenter votre base de données par Gustavo Ponce
- Comment visualiser un schéma PostgreSQL au format SVG avec SchemaSpy par Willem van den Ende
- Installation de SchemaSpy pour documenter votre base de données par @SimonGoring
- Diagramme de schéma de base de données Netbox utilisant Schemaspy par Jason Lavoie
- Documentation PostgreSQL de qualité production en quelques minutes par Magnus Brun Falch
- Schemaspy – créez une documentation pour votre base de données par Petr Hnilica
- SchemaSpy-HOWTO par @dpapathanasiou
- Documentation simple de base de données avec SchemaSpy par @rieckpil
- Cas d'utilisation de données et Schemaspy : gestion de base de données par Juilee Talele
Utilisation scientifique
Nous sommes fiers de constater que SchemaSpy accompagne les chercheurs dans leur travail.
- Une ontologie dynamique basée sur les données par Dhomas Hatta Fudholi et al.
- Une comparaison empirique à grande échelle des générateurs de cas de test basés sur la recherche de pointe par Annibale Panichella et al.
- Un guide scientifique pour soumettre des données à ZFIN par Douglas G Howe
- Génération automatisée de tests unitaires pour les classes avec dépendances d'environnement par Andrea Arcuri et al.
- BiG-SLiCE : un outil hautement évolutif cartographie la diversité de 1,2 million de groupes de gènes biosynthétiques par Satria A Kautsar et al.
- emrKBQA : un ensemble de données de réponse aux questions de la base de connaissances cliniques par Preethi Raghavan et al.
- EpiSurf : serveur de recherche basé sur des métadonnées pour analyser les changements d'acides aminés dans les épitopes du SRAS-CoV-2 et d'autres espèces virales par Anna Bernasconi et al.
- Expériences issues de la réalisation d'évaluations de la qualité des logiciels en combinant l'analyse de métriques basées sur des références, la visualisation de logiciels et l'évaluation d'experts par Aiko Yamashita
- FOCUSPEARL version 5.5.5 - description technique de la base de données et de l'interface par Maarten C Braakhekke et al.
- Des systèmes monolithiques aux microservices : un cadre de décomposition basé sur le process mining par Davide Taibi et Kari Systä
- GEM : le mappeur d'entités GAAIN par Naveen Ashish et al.
- Fiche santé : Développement d'un artefact de transparence pour les ensembles de données sur la santé par Negar Rostamzadeh et al.
- Comment Aphia, la plate-forme derrière plusieurs bases de données en ligne et à orientation taxonomique, peut servir à la fois la communauté taxonomique et le domaine de l'informatique sur la biodiversité par Leen Vandepitte et al.
- Exploration des frontières de dépendance de contrôle incrémental pour la génération de cas de test à plusieurs critères par Annibale Panichella et al.
- Intégration des données de radiothérapie multimodale dans i2b2 par Eric Zapletal et al.
- Méthodologie d'intégration d'un entrepôt de données cliniques avec un système d'information clinique : le cas HEGP par Eric Zapletal et al.
- NakeDB : visualisation de schéma de base de données par Luis Miguel Cort ́es-Peña
- Base de données OCTOPUS (v.2) par Alexandru T. Codilean et al.
- Sur la correspondance approximative des programmes de protection des logiciels libres par Arnoldo José Müller Molina et Takeshi Shinohara
- Sur la qualité des schémas de bases de données relationnelles dans les logiciels open source par Fabien Coelho et al.
- Prédire la réadmission à l'hôpital en analysant les dossiers DSE des patients par Anshik
- Prédiction des collaborations d'acteurs à l'aide des données IMDB par Vassilis Polychronopoulos et Abhinav Venkateswar Venkataraman
- Génération de benchmarks de modèles relationnels probabilistes : Principe et application par Mouna Ben Ishak et al.
- Processus, motivations et enjeux de la migration vers des architectures de microservices : une enquête empirique par Davide Taibi et al.
- Réaliser le potentiel du blanchiment d'argent à partir des dossiers de santé électroniques par Haoyuan Zhang et al.
- Stratégies d'amorçage dans la génération de tests unitaires basées sur la recherche par José Miguel Rojas et al.
- Preuves empiriques solides dans les tests de logiciels par Gordon Fraser et Andrea Arcuri
- The Zebrafish Information Network : mises à jour majeures de la page génétique et de la page d'accueil par Douglas G Howe et al.
- Transformation et évaluation de la base de données MIMIC dans le modèle de données commun OMOP : étude de développement et d'utilisabilité par Nicolas Paris et al.
- Une base de données spatiales intégrée dans un système d'information géographique pour la gestion du terroir : un nouveau système cohérent et interactif par Alberto Lázaro-López et al.
- Utilisation d'une combinaison d'outils de mesure pour extraire des métriques de projets open source par Normi S Awang Abu Bakar et Clive Boughton
- Utilisation des tableaux de bord Tableau comme outil de visualisation pour les données MIMIC-III par Karl Gottfried et al.
- Réseau d'information sur le poisson zèbre, la base de connaissances pour la recherche sur Danio rerio par Yvonne M Bradford et al.
Pour citer SchemaSpy, veuillez utiliser :
SchemaSpy Team (2024) SchemaSpy: Database documentation built easy. SchemaSpy. URL https://schemaspy.org/
L'entrée BibTeX pour les utilisateurs de LaTeX est :
@Manual{schemaspy,
title = {SchemaSpy: Database documentation built easy},
author = {{SchemaSpy Team}},
organization = {SchemaSpy},
year = {2024},
url = {https://schemaspy.org/}
}
Instructions de construction
Application
SchemaSpy est construit à l'aide de maven et nous utilisons le wrapper maven.
mvnw.cmd package
Windows mvnw.cmd
./mvnw package
Linux ./mvnw
L'application résultante peut être trouvée dans target
Analyser
Vous avez besoin de votre propre SonarQube :
https://hub.docker.com/_/sonarqube/
Windows mvnw.cmd -P sonar clean verify -Dsonar.host.url=http://$(boot2docker ip):9000 -Dsonar.jdbc.url="jdbc:h2:tcp://$(boot2docker ip)/sonar"
Linux ./mvnw -P sonar clean verify
Regardez les résultats sur :
Linux http://localhost:9000
Windows http://$(boot2docker ip):9000
Documentation
Construit en utilisant Python
Créer venv
Installer les dépendances pip install -r docs/requirements.txt
Accédez aux docs
Windows make.bat clean && make.bat html
Linux make clean html
La documentation résultante peut être trouvée dans docs/build/html