DIY awesome sheet, or GitHub instead of notepad

DIY awesome sheet, or GitHub instead of notepad

Hey Habr! Probably, each of us has such a file where we hide something useful and interesting for ourselves. Some links to articles, books, repositories, manuals. It can be bookmarks in the browser or even just open tabs left for later. Over time, all this swells, links stop opening, and most of the material simply becomes outdated.

But what if you share this goodness with the community and put this file on github? Then your work can be useful to someone else, and you can keep up to date together, accepting updates from those who wish through the good old PR's. That's what the project is for. Awesome lists. It is in the TOP-10 github repositories, has 138K stars, and a link to your work can be right in its root README, which will attract a huge audience to your work. True, this will take a little effort. I want to share my experience of such efforts with you.

My name is Maxim Gramin. At CROC, I am engaged in Java development and database research. In this post, I will explain what Awesome Lists are and how to make your own official awesome repo.

What are Awesome Lists

When I have to deal with some new technology or programming language, the first thing I do is go here - I find the right section, and there are suitable sheets in it. And judging by the number of stars and their constant growth, I'm not the only one doing this.
DIY awesome sheet, or GitHub instead of notepad

In fact, this is an ordinary flat readme.md that lives in a separate repositories, ranks 8th among all GitHub repositories and includes links to other sheets devoted to any subject. For example, in the Programming Languages ​​section, you can find Awesome Python and Awesome Go sheets, and Front-End Development has a huge amount of resources on WEB development. And, of course, the section Databases (we will return to it a little later). And yes, it's not just limited to technical topics. For example, in the Entertainment and Gaming sections, you can also find a lot of interesting things (I was personally pleased awesome-fantasy).
The main feature is that all these lists are maintained not personally by the author, but by the community and are compiled in accordance with a special and very strict awesome manifesto. Each such sheet is an independent community of specialists, lives its own life and is open to your pull requests, which will make it even better. And also anyone can make their own sheet, if some topic has not yet been covered.

The author of the idea and coordinator of this entire economy is the legendary Sindre Sorhus, first person on github, author of more 1000 npm modules, and it is he who will receive your PRs.
DIY awesome sheet, or GitHub instead of notepad

How to get on the awesome-list

If suddenly you did not find a suitable sheet on the topic that interests you, then this is the first sign that you need to do it yourself!

Let me tell you about my child Awesome Database Tools - From project to project, I have to work with a variety of databases, and therefore I got such a file in which I collected useful tools for working with them, all sorts of database migrators, IDEs, admin panels, monitoring tools and everything miscellaneous. Tools that I have already used, or just planned to start using. I shared this file with colleagues at CROC and beyond. It helped a lot and was interesting. In the end, I wanted more glory when I noticed one day that the Databases section did not have a sheet on this topic. And I decided to add mine there.

What do you need?

  1. We register a regular GitHub repo with a name like awesome-something-there. In my case it was awesome-database-tools
  2. We bring our sheet to the awesome format, this will help us generator-awesome-list, which will generate all the desired files in the desired format
  3. Setting up the real CI. awesome lint and travis ci help us control validity our sheet
  4. Waiting 30 days
  5. We review at least 2 other people's PRs
  6. And finally, we make a PR to the main repo, where we add a link to our repo. Here you need to carefully read everything and carefully fulfill all the numerous requirements for a new sheet and the PR itself.

My first pancake turned out to be a lump
DIY awesome sheet, or GitHub instead of notepad
But a little time passed, I collected even more material, worked on the mistakes and ventured into second try.

But I forgot about a very important thing, which was gently hinted to me:
DIY awesome sheet, or GitHub instead of notepad

I was not very careful and did not add a unicorn as a sign of confirmation that all conditions were met
DIY awesome sheet, or GitHub instead of notepad

Then a little more time passed, a few more edits on the comments, and the long-awaited tweetthat my PR was accepted.

So I became the author of my first sheet, and I began to receive PR's from the community to add new tools. And many of them are already included in Awesome Database Tools. If you're too lazy to follow the link,

Here is the current selection at the time of posting.

Awesome Database Tools DIY awesome sheet, or GitHub instead of notepad

Community driven list of database tools

Here we will collect information about awesome useful and awesome experimental tools that simplify with databases for DBA, DevOps, Developers and mere mortals.

Feel free to add information about your own db-tools or your favorite third-party db-tools.

Contents

IDE

  • AnySQL Maestro - Premier multi-purpose admin tool for database management, control and development.
  • Aqua Data Studio — Aqua Data Studio is productivity software for Database Developers, DBAs, and Analysts.
  • Database.net - Multiple database management tool with support for 20+ databases.
  • datagrip - Cross-Platform IDE for Databases & SQL by JetBrains.
  • DBeaver - Free universal database manager and SQL client.
  • dbForge Studio for MySQL - Universal IDE for MySQL and MariaDB database development, management, and administration.
  • dbForge Studio for Oracle - Powerful IDE for Oracle management, administration, and development.
  • dbForge Studio for PostgreSQL — GUI tool for managing and developing databases and objects.
  • dbForge Studio for SQL Server - Powerful integrated development environment for SQL Server development, management, administration, data analysis, and reporting.
  • dbKoda - Modern (JavaScript/Electron framework), open source IDE for MongoDB. It has features to support development, administration and performance tuning on MongoDB databases.
  • IBExpert — Comprehensive GUI tool for Firebird and InterBase.
  • HeidiSQL — A lightweight client for managing MySQL, MSSQL and PostgreSQL, written in Delphi.
  • MySQL Workbench — MySQL Workbench is a unified visual tool for database architects, developers, and DBAs.
  • Navicat - 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 - Oracle SQL Developer is a free, integrated development environment that simplifies the development and management of Oracle Database in both traditional and Cloud deployments.
  • pgAdmin — The most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.
  • pgAdmin3 - Long Term Support for pgAdmin3.
  • PL / SQL Developer - IDE that is specifically targeted at the development of stored program units for Oracle Databases.
  • PostgreSQL Maestro - Complete and powerful database management, admin and development tool for PostgreSQL.
  • Toad — Toad is the premier database solution for developers, admins and data analysts. Manage complex database changes with a single database management tool.
  • Toad Edge - Simplified database development tool for MySQL and Postgres.
  • TOra — TOra is an open source SQL IDE for Oracle, MySQL and PostgreSQL dbs.
  • Valentina Studio — Create, administer, query and explore Valentina DB, MySQL, MariaDB, PostgreSQL and SQLite databases for FREE.

GUI Managers/Clients

  • Adminer - Database management in a single PHP file.
  • DbVisualizer — Universal database tool for developers, DBAs and analysts.
  • houseops - Enterprise ClickHouse Ops UI for you run queries, monitoring ClickHouse health and make a lot of others thinks.
  • JackDB - Direct SQL access to all your data, no matter where it lives.
  • OmniDB — Web tool for database management.
  • pgweb — Web-based database browser for PostgreSQL, written in Go and works on macOS, Linux and Windows machines.
  • phpLiteAdmin - Web-based SQLite database admin tool written in PHP with support for SQLite3 and SQLite2.
  • phpMyAdmin — A web interface for MySQL and MariaDB.
  • psequel — PSequel provides a clean and simple interface for you to perform common PostgreSQL tasks quickly.
  • PopSQL — Modern, collaborative SQL editor for your team.
  • postico - A Modern PostgreSQL Client for the Mac.
  • Robo 3T - Robo 3T (formerly Robomongo) is a shell-centric cross-platform MongoDB management tool.
  • Sequel Pro — Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL & MariaDB databases.
  • SQL Operations Studio - A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
  • SQLiteExpert - Graphical interface supports all SQLite features.
  • sqlpad - Web-based SQL editor run in your own private cloud.
  • SQLPro — A simple, powerful Postgres manager for macOS.
  • Squirrel — Graphical SQL client written in Java that will allow you to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands etc.
  • SQLTools - Database management for VSCode.
  • sqlyog - The most complete and easy to use MySQL GUI.
  • Tabix — SQL Editor & Open source simple business intelligence for Clickhouse.
  • Table Plus - Modern, native, and friendly GUI tool for relational databases: MySQL, PostgreSQL, SQLite & more.
  • TeamPostgreSQL - PostgreSQL Web Administration GUI - use your PostgreSQL databases from anywhere, with rich, lightning-fast AJAX web interface.

CLI tools

  • ipython-sql — Connect to a database for issue SQL commands within IPython or IPython Notebook.
  • iredis - A Cli for Redis with AutoCompletion and Syntax Highlighting.
  • pgcenter - Top-like admin tool for PostgreSQL.
  • pg_activity - Top like application for PostgreSQL server activity monitoring.
  • pg_top — 'top' for PostgreSQL.
  • pspg — PostgreSQL Pager.
  • sqlcl - Oracle SQL Developer Command Line (SQLcl) is a free command line interface for Oracle Database.
  • usql - A universal command-line interface for PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, and many other databases including NoSQL and non-relational databases!

dbcli

  • athenacl - AthenaCLI is a CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.
  • litecli - CLI for SQLite Databases with auto-completion and syntax highlighting.
  • mssql-cli - A command-line client for SQL Server with auto-completion and syntax highlighting.
  • mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
  • pgcli - Postgres CLI with autocompletion and syntax highlighting.
  • vcli - Vertica CLI with auto-completion and syntax highlighting.

DB schema navigation and visualization

  • dbdiagram.io — Quick and simple tool to help you draw your database relationship diagrams and flow quickly using simple DSL language.
  • ERAlchemy - Entity Relation Diagrams generation tool.
  • SchemaCrawler — A free database schema discovery and comprehension tool.
  • Schema Spy - Generating your database to HTML documentation, including Entity Relationship diagrams.
  • tbls - CI-Friendly tool for document a database, written in Go.

Modelers

  • Navicat Data Modeler - A powerful and cost-effective database design tool which helps you build high-quality conceptual, logical and physical data models.
  • Oracle SQL Developer Data Modeler - Oracle SQL Developer Data Modeler is a free graphical tool that enhances productivity and simplifies data modeling tasks.
  • pgmodeler — Data modeling tool designed for PostgreSQL.

Migration tools

  • 2 bass - Database configuration-as-code tool that utilizes the concept of idempotent DDL scripts.
  • flyway - Database migration tool.
  • gh-ost - Online schema migration for MySQL.
  • liquibase - Database-independent library for tracking, managing and applying database schema changes.
  • migrates — Like diff but for PostgreSQL schemas.
  • node-pg-migrate - Node.js database migration management built exclusively for postgres. (But can also be used for other DBs conforming to SQL standard—eg CockroachDB.)
  • Pyrseas - Provides utilities to describe a PostgreSQL database schema as YAML.
  • SchemaHero - A Kubernetes operator for declarative database schema management (gitops for database schemas).
  • Sqitch - Sensible database-native change management for framework-free development and dependable deployment.
  • uniql - Yet another schema versioning and migration tool just made with native .NET Core 3.0+ and hopefully better.

Code generation tools

  • ddl-generator — Infers SQL DDL (Data Definition Language) from table data.
  • scheme2ddl - Command line util for export Oracle schema to set of ddl init scripts with ability to filter undesirable information, separate DDL in different files, pretty format output.

Wrappers

  • Dreamfactory — A open source REST API backend for mobile, web, and IoT applications.
  • Hasura GraphQL Engine - Blazing fast, instant realtime GraphQL APIs on Postgres with fine grained access control, also trigger webhooks on database events.
  • jl-sql - SQL for JSON and CSV streams.
  • mysql_fdw PostgreSQL foreign data wrapper for MySQL.
  • Oracle REST Data Services — A mid-tier Java application, ORDS maps HTTP(S) verbs (GET, POST, PUT, DELETE, etc.) to database transactions and returns any results formatted using JSON.
  • Prisma - Prisma turns your database into a realtime GraphQL API.
  • postgREST - REST API for any Postgres database.
  • perst - Is a way to serve a RESTful API from any databases written in Go.
  • restSQL - SQL generator with Java and HTTP APIs, uses a simple RESTful HTTP API with XML or JSON serialization.
  • resquel - Easily convert your SQL database into a REST API.
  • sandman2 - Automatically generate a RESTful API service for your legacy database.
  • sql-boot - Advanced REST and UI wrapper for your SQL queries.

backup tools

  • pgbackrest - Reliable PostgreSQL Backup & Restore.
  • BarMan — Backup and Recovery Manager for PostgreSQL.

Replication/Data operation

  • dataset — A tool for exploring and publishing data.
  • dtle - Distributed Data Transfer Service for MySQL.
  • pgsync - Sync Postgres data between databases.
  • pg_chameleon - MySQL to PostgreSQL replica system written in Python 3. The system use the library mysql-replication to pull the row images from MySQL which are stored into PostgreSQL as JSONB.
  • PGDeltaStream - A Golang webserver to stream Postgres changes atleast-once over websockets, using Postgres logical decoding feature.
  • repmgr — The Most Popular Replication Manager for PostgreSQL.

Scripts

Monitoring/Statistics/Performance

  • ASH Viewer - Provides a graphical view of active session history data within the Oracle and PostgreSQL DB.
  • Monyog - Agentless & Cost-effective MySQL Monitoring Tool.
  • mssql-monitoring - Monitor your SQL Server on Linux performance using collectd, InfluxDB and Grafana.
  • Navicat Monitor — A safe, simple and agentless remote server monitoring tool that is packed with powerful features to make your monitoring effective as possible.
  • Percona Monitoring and Management - Open source platform for managing and monitoring MySQL and MongoDB performance.
  • pganalyze collector - Pganalyze statistics collector for gathering PostgreSQL metrics and log data.
  • postgres-checkup - New-generation diagnostics tool that allows users to do a deep analysis of the health of Postgres databases.
  • postgres_exporter - Prometheus exporter for PostgreSQL server metrics.
  • pgDash - Measure and track every aspect of your PostgreSQL databases.
  • PgHero - A performance dashboard for Postgres - health checks, suggested indexes, and more.
  • pgmetrics - Collect and display information and stats from a running PostgreSQL server.
  • pgMustard - A user interface for Postgres explain plans, plus tips to improve performance.
  • pgstats - Collects PostgreSQL statistics, and either saves them in CSV files or print them on the stdout.
  • pgwatch2 - Flexible self-contained PostgreSQL metrics monitoring/dashboarding solution.
  • Telegraf PostgreSQL plugin - Provides metrics for your postgres database.

Zabbix

  • Mamonsu —Monitoring agent for PostgreSQL.
  • Orabbix — 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.
  • pg_monz - This is the Zabbix monitoring template for PostgreSQL Database.
  • Pyora - Python script to monitor Oracle Databases.
  • ZabbixDBA - ZabbixDBA is fast, flexible, and continuously developing plugin to monitor your RDBMS.

Testing

  • DbFit — A database testing framework that supports easy test-driven development of your database code.
  • RegreSQL - Regression Testing your SQL queries.

data generator

Administration

  • pgbadger - A fast PostgreSQL Log Analyzer.
  • pgbedrock - Manage a Postgres cluster's roles, role memberships, schema ownership, and privileges.
  • pgslice Postgres partitioning as easy as pie.

HA/Failover/Sharding

  • Citus - Postgres extension that distributes your data and your queries across multiple nodes.
  • patrons - A template for PostgreSQL High Availability with ZooKeeper, etcd, or Consul.
  • Percona XtraDB Cluster - A High Scalability Solution for MySQL Clustering and High Availability.
  • stolon - Cloud native PostgreSQL manager for PostgreSQL high availability.
  • pg_auto_failover - Postgres extension and service for automated failover and high-availability.
  • pglookout - PostgreSQL replication monitoring and failover daemon.
  • PostgreSQL Automatic Failover - High-Availability for Postgres, based on industry references Pacemaker and Corosync.
  • postgresql_cluster - PostgreSQL High-Availability Cluster (based on "Patroni" and "DCS(etcd)"). Automating deployment with Ansible.
  • Speed - Database clustering system for horizontal scaling of MySQL through generalized sharding.

Kubernetes

  • KubeDB — Making running production-grade databases easy on Kubernetes.
  • postgres operator — The Postgres Operator enables highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni.
  • Game - HA PostgreSQL Clusters with Docker.
  • Stack Gres - Enterprise-grade, Full Stack PostgreSQL on Kubernetes.

Configuration Tuning

  • MySQLTuner-perl — Script written in Perl that allows you to review a MySQL installation quickly and make adjustments to increase performance and stability.
  • PGConfigurator — Free online tool to generate an optimized postgresql.conf.
  • pgtune - PostgreSQL configuration wizard.
  • postgresqltuner.pl — Simple script to analyze your PostgreSQL database configuration, and give tuning advice.

DevOps

  • DBmaestro — DBmaestro accelerates release cycles & supports agility across the entire IT ecosystem.
  • Toad DevOps Toolkit — Toad DevOps Toolkit executes key database development functions within your DevOps workflow —without compromising quality, performance or reliability.

Schema samples

Reporting

  • Poli - An easy-to-use SQL reporting application built for SQL lovers.

distributions

  • dbdeployer - Tool that deploys MySQL database servers easily.
  • dbatools - PowerShell module that you may think of like a command-line SQL Server Management Studio.
  • postgres.app - Full-featured PostgreSQL installation packaged as a standard Mac app.
  • BigSQL — A developer-friendly distribution of Postgres.
  • Elephant Shed - Web-based PostgreSQL management front-end that bundles several utilities and applications for use with PostgreSQL.

Security

  • Accra - Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL.

Code formatters

  • codebuff - Language-agnostic pretty-printing through machine learning.

Contributing

There are finds for the database - share. I will also be glad to receive feedback - PR's and stars. If you have any questions about creating your own sheets, write too.

Source: habr.com

Add a comment