SchemaMap is a lightweight, zero-dependency data dictionary and metadata catalog designed to document, organize, and maintain complex enterprise database structures.
Built entirely using Python's standard library, this cross-platform desktop tool provides an intuitive interface to map out database schemas hierarchically—organizing technical assets by Systems, Microservices/Modules, Tables, Columns, and Queries.
- Zero-Dependency Core: Powered strictly by Python's native
Tkinter (ttk)for a clean, platform-agnostic UI and built-in file I/O operations. No heavy web frameworks or external ORM maintenance required. - Git-Friendly Storage: Avoids merge conflicts by isolation. Every database table is stored as an individual JSON file. This makes it perfect for decentralized engineering teams using Git.
- Decoupled Data Architecture: The application code is completely separate from the metadata. It includes a native Folder Chooser to load any data workspace dynamically.
- 100% Portable: The entire application runs natively on Windows, macOS, and Linux. It is fully self-contained—perfect for carrying on a flash drive or sharing across DevOps teams.
The application binary/code lives in its own repository, while your database metadata lives in a separate version-controlled data repository (Workspace).
schemamap/
│
├── core/ # Core business logic modules (Data)
│ ├── __init__.py
│ ├── workspace.py # Workspace manager (JSON File I/O handler)
│
├── ui/ # Native graphical user interface modules
│ ├── __init__.py
│ ├── main_window.py # Main window (Treeview navigation & Notebook panels)
│ └── components.py # Dialogs (Folder Chooser, modals, forms)
│
├── app.py # Main application entry point (Orchestrator)
├── config.json # Local app settings (Stores selected workspace path)
├── AGENTS.md # AI Developer Guidelines and Architectural Constraints
├── LICENSE # MIT License
└── README.md # App documentation
your-metadata-workspace/
│
├── systems.json # Global index mapping systems and their modules
└── crm_system/ # Root directory for a specific System
├── metadata.json # General system description and settings
├── mod_customers/ # Sub-folder acting as a logical Module/Microservice
│ ├── queries.json # Consolidated queries for this module
│ ├── CUSTOMER_REFS.json # Isolated metadata & indexes for this specific table
│ └── ADDRESSES.json
└── mod_billing/
└── INVOICES.json
Python 3.8 or higher installed on your system.
(Linux Users Only) Depending on your distribution, you might need to ensure tkinter is installed natively:
sudo apt-get install python3-tkgit clone [https://github.com/your-username/schemamap.git](https://github.com/your-username/schemamap.git)
cd schemamappython app.pyThis project is licensed under the MIT License - see the LICENSE file for details.