Skip to content

gtripoli/PeterSQL

Repository files navigation

status: unstable Coverage

PeterSQL

PeterSQL

Heidi's (silly?) friend — a wxPython-based reinterpretation of HeidiSQL

PeterSQL is a graphical client for database management, inspired by the excellent HeidiSQL, but written entirely in Python using wxPython, with a focus on portability and native look & feel.


⚠️ Project Status

The project is in active development and currently unstable. Features may be incomplete or change without notice.

Use at your own risk and do not rely on this project in production environments yet.


🧭 Why PeterSQL?

Over the years, I have used HeidiSQL as my primary tool for working with MySQL, MariaDB, SQLite, and other databases. It is a tool I deeply appreciate: streamlined, intuitive, and powerful.

Rather than trying to compete with HeidiSQL, PeterSQL started as a personal challenge: to recreate the same spirit in a pure Python application.

PeterSQL is not a 1:1 port. It is a Python-first reinterpretation, built with different goals in mind.

  • 🐍 Written entirely in Python
  • 🧩 Built entirely in Python to enable easy modification and extension
  • 🎯 Focused on simplicity and clarity, inspired by HeidiSQL
  • 🆓 Free and open source

PeterSQL exists for developers who love HeidiSQL’s approach, but want a tool that feels native to the Python ecosystem.


🔧 Technologies used


🚀 Installation

PeterSQL uses uv for fast and reliable dependency management.

Prerequisites

  • Python 3.11+
  • uv (install with: curl -LsSf https://astral.sh/uv/install.sh | sh)

Setup

  1. Clone the repository:

    git clone https://github.com/gtripoli/petersql.git
    cd petersql
  2. Install dependencies (including dev tools for testing):

    uv sync --group dev
  3. Run the application:

    uv run python main.py

Development

For production deployments, install only functional dependencies:

uv sync

To run tests:

uv run --group dev pytest

To run mypy:

uv run --group dev mypy

📸 Screenshot

Session Manager Main Frame - Columns Main Frame - Datatypes Main Frame - Default Main Frame - Indexes Main Frame - Foreign Keys Main Frame - Foreign Keys Columns

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages