SchemaSpy ist ein Datenbank-Metadatenanalysator. Es hilft Ihren Datenbankadministratoren und Entwicklern, Ihr Datenmodell zu visualisieren, zu navigieren und zu verstehen. Mit einem benutzerfreundlichen HTML-basierten Bericht war das Durchsuchen des Entitätsbeziehungsdiagramms noch nie so einfach. Unsere Produktpräsentation finden Sie unter http://schemaspy.org/sample/index.html.
Installation
SchemaSpy ist eine eigenständige Anwendung ohne GUI. Laden Sie einfach die neueste JAR-Datei oder das neueste Docker-Image herunter und schon kann es losgehen! Um SchemaSpy von Maven aus zu verwenden, lesen Sie bitte das Maven-Kapitel unten.
# 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
Für unveröffentlichte Fehlerbehebungen und in Arbeit befindliche Funktionen laden Sie unser Snapshot-JAR herunter oder verwenden Sie den Docker-Tag snapshot
Maven
SchemaSpy veröffentlicht zwei Arten von JAR-Dateien: eine einfache JAR und eine fette JAR einschließlich aller Abhängigkeiten. Beide JARs werden in Maven Central veröffentlicht. Das fette JAR ist auch an Veröffentlichungen auf GitHub angehängt. Über das Abzeichen „Maven Central“ oben auf dieser Seite gelangen Sie direkt zur neuesten Version von Maven Central.
Der Maven-GAV der beiden Artefakte ist wie folgt:
- Bare-Bone-JAR:
org.schemaspy:schemaspy:<version>
- fat JAR:
org.schemaspy:schemaspy:<version>:app
← Beachten Sie den app
-Klassifikator
Schnellstart
Nehmen wir an, Sie verwenden PostgreSQL (11 oder höher). Laden Sie zunächst den JDBC-Treiber herunter.
curl -L https://jdbc.postgresql.org/download/postgresql-42.5.4.jar
--output ~/Downloads/jdbc-driver.jar
Führen Sie dann SchemaSpy für Ihre Datenbank aus und Sie können sie in DIRECTORY/index.html
durchsuchen.
java -jar ~/Downloads/schemaspy.jar
-t pgsql11
-dp ~/Downloads/jdbc-driver.jar
-db DATABASE
-host SERVER
-port 5432
-u USER
-p PASSWORD
-o DIRECTORY
Wenn Sie PostgreSQL nicht verwenden, geraten Sie nicht in Panik! SchemaSpy unterstützt standardmäßig über ein Dutzend verschiedene Datenbanken. Listen Sie sie mit -dbhelp
auf. Immer noch nicht genug? Solange Ihre Datenbank über einen JDBC-Treiber verfügt, können Sie ihn in SchemaSpy einbinden.
Dokumentation und FAQs
Wir hosten unsere Dokumentation auf Read the Docs. Lesen Sie unbedingt den Abschnitt zur Fehlerbehebung bei häufigen Problemen.
Hauptanwendungsfälle
SchemaSpy deckt viele Anwendungsfälle für die Datenbankanalyse und -dokumentation ab. Schauen Sie sich unbedingt die von der Community bereitgestellten Leitfäden weiter unten in dieser README-Datei an.
On-Demand-Datenbankdokumentation
Die bevorzugte Methode zur Dokumentation von Datenbanken sind Entity-Relationship-Diagramme (ER-Diagramme). Allerdings ist das manuelle Zeichnen dieser Diagramme ein so zeitaufwändiger und fehleranfälliger Prozess, dass wir sie in der Praxis kaum zeichnen. Wenn die Diagramme gezeichnet werden , bleiben sie selten aktuell. Mit SchemaSpy ist dies kein Problem mehr. Die Diagramme können schnell und sogar als Teil Ihres CI/CD-Workflows generiert werden, um sicherzustellen, dass sie immer auf dem neuesten Stand sind.
Ihre Datenbank in Zahlen
SchemaSpy kann verschiedene Arten interessanter Statistiken sammeln, um die Form und Form der Struktur Ihrer Datenbank zu beschreiben. Vertiefen Sie diese Statistiken direkt im Bericht oder exportieren Sie sie zur weiteren Qualitätssicherungsanalyse in Excel oder CSV.
Behandeln Sie die Daten vertraulich
Heutzutage können die Daten eines Unternehmens sein wertvollstes Gut sein. Da SchemaSpy nur Strukturinformationen liest, funktioniert es genauso gut auf einer leeren Datenbankreplik. Dies bedeutet, dass der Bericht bedenkenlos zur Analyse durch Dritte weitergegeben werden kann.
Erkennen Sie suboptimale Konstrukte
SchemaSpy integriert Kenntnisse über Best Practices im Datenbankdesign. Es kann Anomalien wie fehlende Indizes, implizite Beziehungen und verwaiste Tabellen lokalisieren und melden.
Gemeinschaft
Willkommen in der SchemaSpy-Community! Allein das Lesen dieser Datei oder die Verwendung des Tools bedeutet, dass Sie Teil unserer Community sind und zur Zukunft des Projekts beitragen. Wir sind dankbar, Sie bei uns zu haben!
Einige unserer Community-Mitglieder haben zusätzliche Anstrengungen unternommen, um SchemaSpy mit mehr Menschen zu teilen, haben ihre Unternehmen um finanzielle Unterstützung gebeten oder beschlossen, die Software zu verbessern. Wir wünschten, wir hätten die Möglichkeit, uns bei jedem einzelnen von Ihnen zu bedanken, denn jeder Github-Stern, Tweet oder jede andere Aktivität erinnert uns daran, dass unsere Arbeit geschätzt wird.
Besonderer Dank
Zum Erstellen der ersten fünf Versionen von SchemaSpy:
Für die Weiterführung von SchemaSpy seitdem:
- Rafał Kasa,
- Nils Petzäll und
- Jesper Olsson
Zum Erstellen von Tutorials und Leitfäden für die Community:
- ?? SQLite-Version von SQLiteSchemaspy von Geek Tutorial
- ?? Automatisch erstellte Datenbankdokumente und SchemaSpy-Dateien von Pavel Tišnovský
- ?? Datenbank-Analyse mit SchemaSpy von Michael Jentsch
- ?? Quick Tipp: Eine Datenbank Struktur verstehen mit Hilfe von Schemaspy von Irving Tschepke
- ?? ▶️ Beispiel für die Verwendung von Schemata von MGS Educación, Tecnología y Juventud
- ?? ▶️ Generiertes Modell basierend auf einer Datenbasis mit SchemaSpy von Inforgledys
- ?? Wir dokumentieren unsere Datenbasis mit SchemaSpy von Jesus Jimenez Herrera
- ?? Möchten Sie die Datenbasis dokumentieren? ... SchemaSpy al rescate von Víctor Madrid
- ?? ▶️ Ein automatisches DOC mit SchemaSpy (und SYMFONY und GITLAB) von YoanDev
- ?? Automatische Dokumentation einer Symfony-App mit SchemaSpy und GitLab! von YoanDev
- ?? Dokumentieren Sie eine Datenbank mit SchemaSpy von Data 4 Everyone!
- ?? SchemaSpy: Von 坂井裕介
- ?? SchemaSpy: ER図を生成する Von @onozaty
- ?? ▶️ SchemaSpy – einfach zu bedienen und mein Unternehmen zu retten! Von Dev Multitask
- ?? Bankdokumente mit Schemaspy von Krisnamourt Silva
- ?? Die SchemaSpy-Datenbank von @icegotcha
- ?? Weiterlesen SchemaSpy von Pham Xuan Dung
- Java Power Tools von John Ferguson Smart
- Von Monolith zu Microservices: Produktivität aufrechterhalten und gleichzeitig das System entwirren von Sam Newman
- Dokumentieren Sie Ihre Datenbank mit SchemaSpy von Robin Tegg
- Dokumentieren Sie Ihre relationale Datenbank mit SchemaSpy von Orlando L. Otero
- So erstellen Sie ein ERD (Entity Relationship Diagram) mit Cybrosys-Technologien
- So dokumentieren Sie eine Datenbank mit SchemaSpy von Data 4 Jeder!
- So verwenden Sie SchemaSpy zur Dokumentation Ihrer Datenbank von Gustavo Ponce
- So visualisieren Sie ein PostgreSQL-Schema als SVG mit SchemaSpy von Willem van den Ende
- Installieren von SchemaSpy zur Dokumentation Ihrer Datenbank von @SimonGoring
- Netbox-Datenbankschemadiagramm mit Schemaspy von Jason Lavoie
- PostgreSQL-Dokumentation in Produktionsqualität in wenigen Minuten von Magnus Brun Falch
- Schemaspy – Erstellen Sie Dokumentation für Ihre Datenbank von Petr Hnilica
- SchemaSpy-HOWTO von @dpapathanasiou
- Einfache Datenbankdokumentation mit SchemaSpy von @rieckpil
- Anwendungsfälle von Daten und Schemaspy: Datenbankverwaltung von Juilee Talele
Wissenschaftlicher Gebrauch
Wir sind stolz darauf, dass SchemaSpy Forscher bei ihrer Arbeit unterstützt.
- Eine datengesteuerte dynamische Ontologie von Dhomas Hatta Fudholi et al.
- Ein groß angelegter empirischer Vergleich modernster suchbasierter Testfallgeneratoren von Annibale Panichella et al.
- Ein Leitfaden für Wissenschaftler zur Übermittlung von Daten an ZFIN von Douglas G. Howe
- Automatisierte Unit-Test-Generierung für Klassen mit Umgebungsabhängigkeiten von Andrea Arcuri et al.
- BiG-SLiCE: Ein hoch skalierbares Tool kartiert die Vielfalt von 1,2 Millionen biosynthetischen Genclustern von Satria A Kautsar et al.
- emrKBQA: Ein klinischer Wissensdatenbank-Frage-Antwort-Datensatz von Preethi Raghavan et al.
- EpiSurf: Metadatengesteuerter Suchserver zur Analyse von Aminosäureveränderungen in Epitopen von SARS-CoV-2 und anderen Virusspezies von Anna Bernasconi et al.
- Erfahrungen aus der Durchführung von Softwarequalitätsbewertungen durch die Kombination von Benchmark-basierter Metrikanalyse, Softwarevisualisierung und Expertenbewertung von Aiko Yamashita
- FOCUSPEARL Version 5.5.5 – technische Beschreibung von Datenbank und Schnittstelle von Maarten C Braakhekke et al.
- Von monolithischen Systemen zu Microservices: Ein Zerlegungsframework basierend auf Process Mining von Davide Taibi und Kari Systä
- GEM: Der GAAIN Entity Mapper von Naveen Ashish et al.
- Gesundheitsblatt: Entwicklung eines Transparenzartefakts für Gesundheitsdatensätze von Negar Rostamzadeh et al.
- Wie Aphia – die Plattform hinter mehreren online und taxonomisch orientierten Datenbanken – sowohl der taxonomischen Gemeinschaft als auch dem Bereich der Biodiversitätsinformatik dienen kann von Leen Vandepitte et al.
- Inkrementelle Erforschung der Kontrollabhängigkeitsgrenze für die Generierung von Testfällen mit vielen Kriterien von Annibale Panichella et al.
- Integration multimodaler Strahlentherapiedaten in i2b2 von Eric Zapletal et al.
- Methodik der Integration eines klinischen Data Warehouse mit einem klinischen Informationssystem: der HEGP-Fall von Eric Zapletal et al.
- NakeDB: Datenbankschema-Visualisierung von Luis Miguel Cort ́es-Peña
- OCTOPUS-Datenbank (v.2) von Alexandru T. Codilean et al.
- Zur ungefähren Abstimmung von Programmen zum Schutz von Libre-Software von Arnoldo José Müller Molina und Takeshi Shinohara
- Zur Qualität relationaler Datenbankschemata in Open-Source-Software von Fabien Coelho et al.
- Vorhersage der Wiederaufnahme ins Krankenhaus durch Analyse der EHR-Aufzeichnungen von Patienten von Anshik
- Vorhersage der Zusammenarbeit von Schauspielern anhand von IMDB-Daten von Vassilis Polychronopoulos und Abhinav Venkateswar Venkataraman
- Benchmark-Generierung probabilistischer relationaler Modelle: Prinzip und Anwendung von Mouna Ben Ishak et al.
- Prozesse, Motivationen und Probleme für die Migration zu Microservices-Architekturen: Eine empirische Untersuchung von Davide Taibi et al.
- Das Potenzial für ML aus elektronischen Patientenakten erkennen von Haoyuan Zhang et al.
- Seeding-Strategien bei der suchbasierten Unit-Test-Generierung von José Miguel Rojas et al.
- Fundierte empirische Beweise für Softwaretests von Gordon Fraser und Andrea Arcuri
- Das Zebrafisch-Informationsnetzwerk: Wichtige Gen-Seiten- und Homepage-Aktualisierungen von Douglas G. Howe et al
- Transformation und Evaluierung der MIMIC-Datenbank im OMOP Common Data Model: Entwicklungs- und Benutzerfreundlichkeitsstudie von Nicolas Paris et al.
- Eine räumliche Datenbasis, die in ein geografisches Informationssystem für die Verwaltung des Territoriums integriert ist: ein neues konsistentes und interaktives System von Alberto Lázaro-López et al.
- Verwendung einer Kombination von Messtools zum Extrahieren von Metriken aus Open-Source-Projekten von Normi S. Awang Abu Bakar und Clive Boughton
- Verwendung von Tableau-Dashboards als Visualisierungstool für MIMIC-III-Daten von Karl Gottfried et al.
- Zebrafisch-Informationsnetzwerk, die Wissensdatenbank für die Danio rerio-Forschung von Yvonne M Bradford et al.
Um SchemaSpy zu zitieren, verwenden Sie bitte:
SchemaSpy Team (2024) SchemaSpy: Database documentation built easy. SchemaSpy. URL https://schemaspy.org/
Der BibTeX-Eintrag für LaTeX-Benutzer lautet:
@Manual{schemaspy,
title = {SchemaSpy: Database documentation built easy},
author = {{SchemaSpy Team}},
organization = {SchemaSpy},
year = {2024},
url = {https://schemaspy.org/}
}
Bauanleitung
Anwendung
SchemaSpy wird mit Maven erstellt und wir verwenden den Maven-Wrapper.
Windows mvnw.cmd package
Linux ./mvnw package
Die resultierende Anwendung finden Sie in target
Analysieren
Sie benötigen Ihren eigenen 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
Sehen Sie sich die Ergebnisse an:
Linux http://localhost:9000
Windows http://$(boot2docker ip):9000
Dokumentation
Mit Python erstellt
Venv erstellen
Installieren Sie Abhängigkeiten pip install -r docs/requirements.txt
Navigieren Sie zu docs
Windows make.bat clean && make.bat html
Linux make clean html
Die resultierende Dokumentation finden Sie in docs/build/html