explaingit

hhyo/archery

6,886PythonAudience · ops devopsComplexity · 4/5LicenseSetup · moderate

TLDR

A web-based platform where developers submit SQL queries for review and approval before they run on production databases, supporting MySQL, PostgreSQL, Oracle, and a dozen more databases through a browser interface.

Mindmap

mindmap
  root((archery))
    What it does
      SQL review workflow
      Approval before execution
      Multi-database support
    Databases
      MySQL full features
      PostgreSQL Oracle
      MongoDB Redis others
    MySQL Extras
      goInception review rules
      gh-ost schema changes
      Binlog rollback
    Tech Stack
      Python Django
      Bootstrap jQuery
      Docker deploy
    Audience
      DBAs
      Platform engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Set up a SQL review workflow so developers submit database changes through a web form for approval before they run on production.

USE CASE 2

Analyze slow MySQL queries through the Archery interface and get index optimization advice without direct database access.

USE CASE 3

Manage large MySQL table schema changes with minimal downtime using gh-ost or pt-online-schema-change integrated into Archery.

USE CASE 4

Roll back specific MySQL changes after they have been applied by using the built-in binary log parsing feature.

Tech stack

PythonDjangoMySQLBootstrapjQueryDocker

Getting it running

Difficulty · moderate Time to first run · 1h+

Deployed via Docker or manual install, MySQL has the most complete feature set while other databases support a subset of features.

Apache License 2.0, use freely for any purpose including commercial, keep the license notice.

In plain English

Archery is a web-based platform for managing and reviewing SQL queries across multiple types of databases. In many engineering teams, database changes go through a review process before they are applied, to catch mistakes or risky operations before they affect production data. Archery provides a central place where developers can submit SQL statements, have them reviewed and approved, and then execute them, all through a browser interface rather than connecting directly to the database. The platform supports a wide range of databases including MySQL, PostgreSQL, Oracle, SQL Server, MongoDB, Redis, ClickHouse, Elasticsearch, Cassandra, Doris, and several others. The level of support varies by database: MySQL has the most complete feature set, including query execution, review and approval workflows, backup, slow query log analysis, account management, and session monitoring. Other databases support a subset of those features, typically at least querying and execution. For MySQL specifically, Archery integrates with external tools to provide capabilities like automated SQL review rules (using goInception), index optimization advice (SQLAdvisor), query optimization suggestions (SOAR), and schema synchronization between different MySQL instances. Large table schema changes can be handled with minimal locking using gh-ost or pt-online-schema-change. MySQL binary log parsing is also available, which enables rolling back specific changes after they have been applied. The application is built with Django on the backend and uses Bootstrap and jQuery for the frontend. It can be deployed with Docker or installed manually. A public demo is available where anyone can log in and try the interface without setting up their own instance. The README is written primarily in Chinese. The project is open-source under the Apache 2.0 license and was built as an extended version of an earlier tool called archer.

Copy-paste prompts

Prompt 1
Deploy Archery with Docker for my team so developers submit MySQL schema changes through a web review form and DBAs approve them before execution. Walk me through the docker-compose setup.
Prompt 2
I want to use Archery to review SQL before it runs on our PostgreSQL production database. What features does Archery support for PostgreSQL and how do I add a PostgreSQL data source?
Prompt 3
Show me how to configure Archery with goInception to automatically flag risky SQL patterns like missing WHERE clauses or full table scans before a DBA even sees the ticket.
Prompt 4
How do I set up Archery's slow query log analysis for MySQL so my DBA team can review and act on slow queries from the web interface?
Prompt 5
I need to rename a column on a 50 million row MySQL table without locking it. Show me how to configure Archery to run that change through gh-ost instead of a direct ALTER TABLE.
Open on GitHub → Explain another repo

← hhyo on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.