{"id":50534223,"url":"https://github.com/peter-l-svk/sql-schema-studio","last_synced_at":"2026-06-03T16:00:30.870Z","repository":{"id":359639429,"uuid":"1246865347","full_name":"Peter-L-SVK/sql-schema-studio","owner":"Peter-L-SVK","description":"Intelligent PostgreSQL Management IDE/Studio. Python3 / GTK4 desktop app with SQL editor, database browser, AI-powered analytics, and Python/Perl hook system. Licensed GPLv3.","archived":false,"fork":false,"pushed_at":"2026-05-29T22:42:26.000Z","size":1157,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-29T23:05:19.964Z","etag":null,"topics":["database-administration","database-design","database-management","datascience","freebsd","gtk4","gtk4-python3","ide","linux","linux-app","perl","perl5","postgres","postgresql","postgresql-database","pytest","python","python3","sql","studio"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Peter-L-SVK.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T16:34:38.000Z","updated_at":"2026-05-29T10:35:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Peter-L-SVK/sql-schema-studio","commit_stats":null,"previous_names":["peter-l-svk/sql-schema-studio"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Peter-L-SVK/sql-schema-studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-L-SVK%2Fsql-schema-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-L-SVK%2Fsql-schema-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-L-SVK%2Fsql-schema-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-L-SVK%2Fsql-schema-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Peter-L-SVK","download_url":"https://codeload.github.com/Peter-L-SVK/sql-schema-studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Peter-L-SVK%2Fsql-schema-studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33872298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-administration","database-design","database-management","datascience","freebsd","gtk4","gtk4-python3","ide","linux","linux-app","perl","perl5","postgres","postgresql","postgresql-database","pytest","python","python3","sql","studio"],"created_at":"2026-06-03T16:00:15.769Z","updated_at":"2026-06-03T16:00:30.850Z","avatar_url":"https://github.com/Peter-L-SVK.png","language":"Python","funding_links":["https://buymeacoffee.com/leukanic.peter"],"categories":[],"sub_categories":[],"readme":"# SQL Schema Studio\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Top Language](https://img.shields.io/github/languages/top/Peter-L-SVK/sql-schema-studio)](https://github.com/Peter-L-SVK/sql-schema-studio)\n[![GitHub release](https://img.shields.io/github/v/release/Peter-L-SVK/sql-schema-studio)](https://github.com/Peter-L-SVK/sql-schema-studio/releases/latest)\n[![GitHub last commit](https://img.shields.io/github/last-commit/Peter-L-SVK/sql-schema-studio)](https://github.com/Peter-L-SVK/sql-schema-studio/commits/main)\n\u003ca href=\"https://buymeacoffee.com/leukanic.peter\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" height=\"20px\"\u003e\u003c/a\u003e\n\nIntelligent PostgreSQL Management Platform. A GTK4 desktop application for\ndatabase administrators and developers who want a clean, fast, and extensible\nSQL tool.\n\n**Alpha software — under active development.**\n\n![Demo](scrshots/4.png)\n\n## What It Does\n\nConnect to PostgreSQL, browse schemas and tables, write and execute queries\nwith syntax highlighting, design schemas visually, and get AI-powered index\nrecommendations. Extend with Python and Perl hooks for custom automation.\n\n## Current Features\n\n- **Connection manager** with saved profiles and system keyring password storage\n- **Database browser** with schema/table tree, live filtering, and double-click to query\n- **SQL editor** with GtkSourceView syntax highlighting, line numbers, and F5 execution\n- **Query execution** with formatted results, timing, and EXPLAIN ANALYZE support\n- **File operations** — open, save, and save as for SQL files (Ctrl+O/S/Shift+S)\n- **Data export** — export query results to CSV and JSON\n- **Data import** — import CSV and JSON files with preview dialog\n- **Visual schema designer** with drag-and-drop tables, column editor, and FK relationships\n  with multiple line styles (straight, S-curve, orthogonal) and arrow heads\n- **SQL file import** — drag .sql files onto the designer to reverse-engineer schemas\n- **Query history** with SQLite storage, search, and type categorization\n- **AI index advisor** — rule-based index recommendations for foreign keys and columns\n- **Hook system** with Python and Perl plugin support and execution\n- **Preferences dialog** with persistent editor settings (font, color scheme, tab width)\n- **Window state persistence** — remembers size and pane positions across sessions\n- Full menu bar with keyboard shortcuts, undo/redo, clipboard, SQL formatting\n- Cross-desktop theming (Cinnamon, GNOME, MATE, XFCE, KDE Plasma)\n- Clean shutdown with automatic disconnection\n\n## Planned\n\n- Completion of built-in hooks (Auto-Vacuum Advisor, Schema Anomaly Detector, Log Analyzer)\n- Browse data with inline editing\n- Migration generator with up/down SQL diffs\n- Multi-CPU analytics for large datasets\n- Visual query builder with drag-and-drop JOINs\n- Bidirectional FK support with cascade rules\n- Star/Snowflake schema detection and visualization\n- Data normalization hook (Kebola)\n- Cython optimization for heavy analytics\n- User manual and documentation\n\n## Requirements\n\n- Linux or FreeBSD\n- Windows 10/11 via WSL2\n- Python 3.12 or later\n- GTK 4 and GtkSourceView 5\n- PostgreSQL 12 or later\n- Perl 5.30 or later (optional, for Perl hooks)\n- Developed on Fedora 43 Cinnamon and tested on Fedora 43 KDE Plasma 6\n\n## System Requirements\n\n**Debian / Ubuntu / Mint:**\n```bash\nsudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 \\\n  gir1.2-gtksource-5.0 libgtk-4-1 libgtksourceview-5-0 \\\n  libcairo2-dev python3-cairo\n```\n\n**Fedora / CentOS / RedHat:**\n```bash\nsudo dnf install python3-gobject gtk4 gtksourceview5 libadwaita cairo python3-cairo\n```\n\n## Quick Start\n\n### Linux/FreeBSD\n\n```bash\ngit clone https://github.com/peter-leukanic/sql-schema-studio.git\ncd sql-schema-studio\npip install -r requirements.txt\npython3 -m src.main\n```\n\n### Windows (WSL2)\n\n```bash\n# Install WSL2 and WSLg\nwsl --install\nwsl --update\n\n# Inside WSL2 terminal (Debian / Ubuntu):\nsudo apt update \u0026\u0026 sudo apt upgrade -y\nsudo apt install python3-pip python3-gi python3-gi-cairo \\\n  gir1.2-gtk-4.0 gir1.2-gtksource-5.0 \\\n  libgtk-4-1 libgtksourceview-5-0 \\\n  libcairo2-dev python3-cairo postgresql postgresql-client -y\n\nsudo service postgresql start\n\ngit clone https://github.com/peter-leukanic/sql-schema-studio.git\ncd sql-schema-studio\npip install -r requirements.txt\npython3 -m src.main\n```\n\n## Development\n\n```bash\npip install -r requirements.txt\npip install pytest black flake8 mypy\n\npython3 -m pytest tests/ -v\npython3 -m black src/ tests/\npython3 -m flake8 src/ tests/\npython3 -m mypy src/\n```\n\n## Architecture\n\n```\nsrc/\n├── main.py Entry point\n├── app.py Gtk.Application lifecycle\n├── actions.py Menu and toolbar handlers\n├── config.py Centralized constants\n├── core/ Database connectivity, query execution, SQL parsing\n├── ui/ GTK4 interface (window, browser, editor, designer)\n│ └── dialogs/ Connection, about, preferences, column editor, hooks\n├── models/ Table, column, and relationship data models\n├── hooks/ Plugin system with Python and Perl executors\n│ ├── python/ Python hook runtime\n│ ├── perl/ Perl hook runtime\n│ ├── python_hooks/ Python hook implementations\n│ └── perl_hooks/ Perl hook implementations\n├── analytics/ Index advisor and query analysis\n├── utils/ GTK4 helpers, logging, settings, signal handlers\n└── resources/\n└── ui/\n├── style.css Application stylesheet\n└── icons/ Application icons\n```\n\n## Contributing\n\nSee [CONTRIBUTING](https://github.com/Peter-L-SVK/sql-schema-studio/blob/main/CONTRIBUTING.md) for details.\nPlease open an issue or pull request for bug fixes, feature suggestions, or documentation improvements.\n\n## License\n\nGNU General Public License v3 or later. See [LICENSE](LICENSE).\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter-l-svk%2Fsql-schema-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeter-l-svk%2Fsql-schema-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter-l-svk%2Fsql-schema-studio/lists"}