
Hello, Habr! We all probably have that file where we stash useful and interesting things for ourselves. Some links to articles, books, repositories, manuals. These can be bookmarks in a browser or even just open tabs left for later. Over time, all of this accumulates, links stop working, and a large portion of the materials simply becomes outdated.
What if we share this valuable content with the community and upload this file to GitHub? Then your work can benefit someone else, and we can keep the information up-to-date together by accepting updates from anyone through the good old pull requests. That's exactly what the project is for. It ranks in the top 10 GitHub repositories with 138K stars, and a link to your work could end up right in its main README, attracting a huge audience to your creations. However, it will require a bit of effort. I want to share my experience in such endeavors with you.
My name is Maxim Gramin. At KROK, I work on Java development and research in the field of databases. In this post, I will explain what Awesome Lists are and how to create your own official awesome repository.
What are Awesome Lists
When I need to get to grips with a new technology or programming language, the first place I go is here β I find the relevant section and suitable lists. Judging by the number of stars and their constant growth, Iβm not the only one who does this.

In fact, it is just an ordinary flat readme.md that lives in a separate , currently ranking 8th among all GitHub repositories and includes links to other lists dedicated to specific topics. For example, in the Programming Languages section, you can find Awesome Python and Awesome Go lists, and in Front-End Development, there are a plethora of resources for web development. And of course, there is the section (which we will return to shortly). And yes, all of this is not limited to just technical topics. For instance, in the Entertainment and Gaming sections, you can find a lot of interesting things (personally, I was pleased by ).
The main feature is that all these lists are curated not by the author alone, but by the community and are compiled according to a special and very strict Each such list is a standalone community of specialists, lives its own life, and is open to your pull requests that will make it even better. Also, anyone interested can create their own list if a certain topic has not yet been covered.
The author of the idea and coordinator of all this is the legendary Sindre Sorhus, the author of more than and it is he who will accept your PRs.

How to enter the awesome list
If you haven't found a suitable list on the topic that interests you, that's the first sign that you need to make it yourself!
I'll explain using my own project as an example, In each project, I have to work with various databases, and that's why I created a file where I gathered useful tools for working with them, various DB migrators, IDEs, admin panels, monitoring tools, and so on. Tools that I have already used or was planning to start using. I shared this file with colleagues at KROK and beyond. This helped many and was interesting. Ultimately, I wanted more recognition when I noticed that there was no list on this topic in the Databases section. So, I decided to add mine.
What do you need for this?
- Register a regular GitHub repo with a name like awesome-something. In my case, it was awesome-database-tools.
- Bring your list to the awesome format with the help of which will generate all the necessary files in the required format.
- Set up a real CI. and Travis CI will help us monitor the of our list.
- Wait 30 days.
- Review at least 2 other PRs.
- And finally, make a PR to the main repo, where you add a link to your repo. Here, it's essential to read everything carefully and thoroughly meet all the numerous requirements for the new list and the PR itself.
My first attempt

But some time passed, I gathered even more material, worked on my mistakes, and dared to make a .
However, I forgot one very important thing, which was gently hinted at to me:

I was not very attentive and did not add the unicorn as confirmation that all conditions were met.

Then a little more time passed, a few more corrections were made based on the remarks, and the long-awaited , announcing that my PR was accepted.
That's how I became the author of my first list, and I started receiving from the community to add new tools. Many of them are already included in . If you're too lazy to click the link,
here's the current list at the time of the post's publication
Awesome Database Tools.
Community driven list of database tools
Here we will collect information about great useful and experimental tools that simplify working with databases for DBAs, DevOps, Developers, and regular users.
Feel free to add information about your own db-tools or your favorite third-party db-tools.
Contents
IDE
- β Premier multi-purpose admin tool for database management, control and development.
- β Aqua Data Studio is productivity software for Database Developers, DBAs, and Analysts.
- β Multiple database management tool with support for 20+ databases.
- β Cross-Platform IDE for Databases & SQL by JetBrains.
- β Free universal database manager and SQL client.
- β Universal IDE for MySQL and MariaDB database development, management, and administration.
- β Powerful IDE for Oracle management, administration, and development.
- β GUI tool for managing and developing databases and objects.
- β Powerful integrated development environment for SQL Server development, management, administration, data analysis, and reporting.
- β Modern (JavaScript/Electron framework), open source IDE for MongoDB. It has features to support development, administration and performance tuning on MongoDB databases.
- β Comprehensive GUI tool for Firebird and InterBase.
- β A lightweight client for managing MySQL, MSSQL, and PostgreSQL, written in Delphi.
- β MySQL Workbench is a unified visual tool for database architects, developers, and DBAs.
- β A database development tool that allows you to simultaneously connect to MySQL, MariaDB, SQL Server, Oracle, PostgreSQL, and SQLite databases from a single application.
- β Oracle SQL Developer is a free, integrated development environment that simplifies the development and management of Oracle Database in both traditional and Cloud deployments.
- β The most popular and feature-rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
- β Long Term Support for pgAdmin3.
- β IDE specifically targeted at the development of stored program units for Oracle Databases.
- β Complete and powerful database management, admin and development tool for PostgreSQL.
- β Toad is the premier database solution for developers, admins and data analysts. Manage complex database changes with a single database management tool.
- β Simplified database development tool for MySQL and Postgres.
- β TOra is an open-source SQL IDE for Oracle, MySQL and PostgreSQL databases.
- β Create, administer, query and explore Valentina DB, MySQL, MariaDB, PostgreSQL and SQLite databases for FREE.
GUI Managers/Clients
- β Database management in a single PHP file.
- β Universal database tool for developers, DBAs and analysts.
- β Enterprise ClickHouse Ops UI for running queries, monitoring ClickHouse health and performing many other tasks.
- β Direct SQL access to all your data, no matter where it resides.
- β Web tool for database management.
- β Web-based database browser for PostgreSQL, written in Go and compatible with macOS, Linux, and Windows machines.
- β Web-based SQLite database administration tool written in PHP, supporting SQLite3 and SQLite2.
- β A web interface for MySQL and MariaDB.
- β PSequel provides a clean and simple interface for performing common PostgreSQL tasks quickly.
- β Modern, collaborative SQL editor for your team.
- β A modern PostgreSQL client for macOS.
- β Robo 3T (formerly Robomongo) is a shell-centric, cross-platform MongoDB management tool.
- β Sequel Pro is a fast, easy-to-use database management application for working with MySQL & MariaDB databases on macOS.
- β A data management tool that enables you to work with SQL Server, Azure SQL DB, and SQL DW from Windows, macOS, and Linux.
- β Graphical interface that supports all SQLite features.
- β Web-based SQL editor running in your own private cloud.
- β A simple yet powerful Postgres manager for macOS.
- β Graphical SQL client written in Java, allowing you to view the structure of a JDBC compliant database, browse data in tables, issue SQL commands, and more.
- β Database management tool for VSCode.
- β The most comprehensive and user-friendly MySQL GUI available.
- β SQL Editor & open-source simple business intelligence tool for Clickhouse.
- β Modern, native, and user-friendly GUI tool for relational databases: MySQL, PostgreSQL, SQLite & more.
- β PostgreSQL web administration GUI β use your PostgreSQL databases from anywhere with a rich, lightning-fast AJAX web interface.
CLI tools
- β Connect to a database to issue SQL commands within IPython or IPython Notebook.
- β A CLI tool for Redis with auto-completion and syntax highlighting.
- β Top-like admin tool for PostgreSQL.
- β Top-like application for monitoring PostgreSQL server activity.
- β βtopβ for PostgreSQL.
- β Postgres Pager.
- β Oracle SQL Developer Command Line (SQLcl) is a free command-line interface for Oracle Database.
- β A universal command-line interface for PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, including NoSQL and non-relational databases!
dbcli
- β AthenaCLI is a CLI tool for the AWS Athena service that offers auto-completion and syntax highlighting.
- β CLI for SQLite databases with auto-completion and syntax highlighting.
- β A command-line client for SQL Server, featuring auto-completion and syntax highlighting.
- β A terminal client for MySQL with auto-completion and syntax highlighting.
- β Postgres CLI with auto-completion and syntax highlighting.
- β Vertica CLI with auto-completion and syntax highlighting.
DB-schema navigation and visualization
- β Quick and simple tool that helps you draw your database relationship diagrams and flows using a simple DSL language.
- β Entity Relation Diagrams generation tool.
- β A free tool for database schema discovery and comprehension.
- β Generates HTML documentation for your database, including entity relationship diagrams.
- β CI-friendly tool for documenting a database, written in Go.
Modelers
- β A powerful and cost-effective database design tool that helps you build high-quality conceptual, logical, and physical data models.
- β Oracle SQL Developer Data Modeler is a free graphical tool that enhances productivity and simplifies data modeling tasks.
- β Data modeling tool designed specifically for PostgreSQL.
Migration tools
- β Database configuration-as-code tool that utilizes the concept of idempotent DDL scripts.
- β Database migration tool.
- β Online schema migration tool for MySQL.
- β A database-independent library for tracking, managing, and applying database schema changes.
- β Similar to diff, but for PostgreSQL schemas.
- β A Node.js database migration management tool built exclusively for PostgreSQL. (It can also be used for other databases conforming to SQL standards β such as CockroachDB.)
- β Provides utilities for describing a PostgreSQL database schema in YAML format.
- β A Kubernetes operator for declarative database schema management (gitOps for database schemas).
- β A sensible database-native change management tool for framework-free development and reliable deployment.
- β Another schema versioning and migration tool designed specifically for .NET Core 3.0+ with improved functionality.
Code generation tools
- β Infers SQL DDL (Data Definition Language) from table data.
- β Command line utility for exporting Oracle schemas to a set of DDL initialization scripts, with options to filter out unnecessary information and separate DDL into different files while formatting output neatly.
Wrappers
- β An open-source REST API backend for mobile, web, and IoT applications.
- β Lightning-fast, real-time GraphQL APIs on PostgreSQL with fine-grained access control, capable of triggering webhooks on database events.
- β SQL designed for JSON and CSV streams.
- β PostgreSQL foreign data wrapper for MySQL.
- β A mid-tier Java application that maps HTTP(S) verbs (GET, POST, PUT, DELETE, etc.) to database transactions, returning results formatted in JSON.
- β Prisma transforms your database into a real-time GraphQL API.
- β A REST API for any PostgreSQL database.
- β Provides a way to serve a RESTful API from any database through Go.
- β SQL generator featuring Java and HTTP APIs, utilizing a straightforward RESTful HTTP API with XML or JSON serialization.
- β Easily convert your SQL database into a REST API.
- β Automatically generates a RESTful API service for your legacy database.
- β An advanced REST and UI wrapper for your SQL queries.
Backup tools
- β A reliable solution for PostgreSQL backup and restore tasks.
- β Backup and Recovery Manager for PostgreSQL.
Replication/Data operation
- β A tool for exploring and publishing data.
- β A Distributed Data Transfer Service for MySQL.
- β Synchronizes PostgreSQL data between different databases.
- β A MySQL to PostgreSQL replication system developed in Python 3. This system uses the mysql-replication library to pull row images from MySQL, storing them in PostgreSQL as JSONB.
- β A Golang web server that streams PostgreSQL changes at least-once over websockets, using the logical decoding feature of PostgreSQL.
- β The most popular replication manager for PostgreSQL.
Scripts
- β A collection of handy scripts for database analysis and administration, created by our team at PostgreSQL Experts.
- β Queries designed to measure statistical bloat in PostgreSQL indexes and tables.
- β An SQL test that evaluates if your database adheres to the guidelines from .
- β Useful utilities for PostgreSQL.
- β Helpful SQL scripts and commands from .
- β A comprehensive set of useful tools for PostgreSQL DBAs and engineers.
- β A collection of useful PostgreSQL queries and commands.
- β These SQL*Plus scripts are designed for optimizing and troubleshooting Oracle Database performance.
Monitoring/Statistics/Performance
- β Provides a graphical view of active session history data within Oracle and PostgreSQL databases.
- β An agentless and cost-effective MySQL monitoring tool.
- β Monitors SQL Server performance on Linux using collectd, InfluxDB, and Grafana.
- β A safe, straightforward, and agentless remote server monitoring tool packed with features to enhance your monitoring effectiveness.
- β Open source platform for managing and monitoring MySQL and MongoDB performance.
- β Pganalyze statistics collector for gathering PostgreSQL metrics and log data.
- β New-generation diagnostics tool that allows users to do a deep analysis of the health of Postgres databases.
- β Prometheus exporter for PostgreSQL server metrics.
- β Measure and track every aspect of your PostgreSQL databases.
- β A performance dashboard for Postgres β health checks, suggested indexes, and more.
- β Collect and display information and stats from a running PostgreSQL server.
- β A user interface for Postgres explain plans, plus tips to improve performance.
- β Collects PostgreSQL statistics, and either saves them in CSV files or prints them on the stdout.
- β Flexible self-contained PostgreSQL metrics monitoring/dashboarding solution.
- β Provides metrics for your postgres database.
Zabbix
- β Monitoring agent for PostgreSQL.
- β Orabbix is a plugin designed to work with Zabbix Enterprise Monitor to provide multi-tiered monitoring, performance and availability reporting and measurement for Oracle Databases, along with server performance metrics.
- β This is the Zabbix monitoring template for PostgreSQL Database.
- β Python script to monitor Oracle Databases.
- β ZabbixDBA is a fast, flexible, and continuously developing plugin to monitor your RDBMS.
Testing
- β A database testing framework that supports easy test-driven development of your database code.
- β Regression testing your SQL queries.
Data generator
- β It is a framework for generating realistic and valid high-volume test data for your system under test (avoiding the Datalite anti-pattern).
- β Powerful GUI tool for creating massive volumes of realistic test data.
- β Small but mighty GUI tool for populating Oracle schemas with tons of realistic test data.
- β Powerful GUI tool for a fast generation of meaningful test data for databases.
Administration
- β A fast PostgreSQL Log Analyzer.
- β Manage a Postgres clusterβs roles, role memberships, schema ownership, and privileges.
- β Postgres partitioning as easy as pie.
HA/Failover/Sharding
- β Postgres extension that distributes your data and your queries across multiple nodes.
- β A template for PostgreSQL High Availability with ZooKeeper, etcd, or Consul.
- β A High Scalability Solution for MySQL Clustering and High Availability.
- β Cloud native PostgreSQL manager for PostgreSQL high availability.
- β Postgres extension and service for automated failover and high-availability.
- β PostgreSQL replication monitoring and failover daemon.
- β High-Availability for Postgres, based on industry references Pacemaker and Corosync.
- β PostgreSQL High-Availability Cluster (based on "Patroni" and "DCS(etcd)"). Automating deployment with Ansible.
- β Database clustering system for horizontal scaling of MySQL through generalized sharding.
Kubernetes
- β Making running production-grade databases easy on Kubernetes.
- β The Postgres Operator enables highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni.
- β HA PostgreSQL Clusters with Docker.
- β Enterprise-grade, Full Stack PostgreSQL on Kubernetes.
Configuration Tuning
- β Script written in Perl that allows you to review a MySQL installation quickly and make adjustments to increase performance and stability.
- β Free online tool to generate an optimized
postgresql.conf. - β PostgreSQL configuration wizard.
- β A simple script to analyze your PostgreSQL database configuration and provide tuning recommendations.
DevOps
- β DBmaestro accelerates release cycles and supports agility across the entire IT ecosystem.
- β The Toad DevOps Toolkit performs essential database development functions within your DevOps workflowβwithout compromising quality, performance, or reliability.
Schema samples
- β Oracle Database Sample Schemas.
Reporting
- β An easy-to-use SQL reporting tool designed for SQL enthusiasts.
Distributions
- β A tool that simplifies the deployment of MySQL database servers.
- β A PowerShell module that can be seen as a command-line version of SQL Server Management Studio.
- β A full-featured PostgreSQL installation packaged as a standard Mac application.
- β A developer-friendly distribution of Postgres.
- β A web-based PostgreSQL management front-end that integrates several utilities and applications for PostgreSQL.
Security
- β A database security suite. This includes a database proxy with field-level encryption, search capabilities through encrypted data, SQL injection prevention, intrusion detection, and honeypots. Supports both client-side and proxy-side ("transparent") encryption. Works with SQL and NoSQL.
Code formatters
- β Language-agnostic pretty-printing powered by machine learning.
Contributing
- Your contributions are always welcome! Please read the first.
If you have findings for the database, please share. I would also appreciate your feedbackβpull requests and star ratings are welcome. If you have questions about creating your own lists, feel free to reach out.
Source: habr.com
