专栏持续更新中:MySQL详解
界面截图

功能清单

依赖清单
框架
- Django
- Bootstrap
- jQuery
前端组件
- 菜单栏 metisMenu
- 主题 sb-admin-2
- 编辑器 ace
- SQL美化 sql-formatter
- 表格 bootstrap-table
- 表格编辑 bootstrap-editable
- 下拉菜单 bootstrap-select
- 文件上传 bootstrap-fileinput
- 时间选择 bootstrap-datetimepicker
- 日期选择 daterangepicker
- 开关 bootstrap-switch
- Markdown展示 marked
服务端
- 队列任务 django-q
- MySQL Connector mysqlclient-python
- MsSQL Connector pyodbc
- Redis Connector redis-py
- PostgreSQL Connector psycopg2
- Oracle Connector cx_Oracle
- MongoDB Connector pymongo
- Phoenix Connector phoenixdb
- ODPS Connector pyodps
- ClickHouse Connector clickhouse-driver
- SQL解析/切分/类型判断 sqlparse
- MySQL Binlog解析/回滚 python-mysql-replication
- LDAP django-auth-ldap
- 序列化 simplejson
- 时间处理 python-dateutil
- 功能依赖
- 可视化 pyecharts
- MySQL审核/执行/备份 goInception|inception
- MySQL索引优化 SQLAdvisor
- SQL优化/压缩 SOAR
- My2SQL my2sql
- 表结构同步 SchemaSync
- 慢日志解析展示 pt-query-digest|aquila_v2
- 大表DDL gh-ost|pt-online-schema-change
- MyBatis XML解析 mybatis-mapper2sql
- RDS管理 aliyun-openapi-python-sdk
- 数据加密 django-mirage-field
- 贡献代码
部署
准备运行配置
具体可参考:github.com/hhyo/Archer...
启动
下载 Releases文件,解压后进入docker-compose文件夹 如果网络受限可访问码云地址: gitee
bash
#启动
docker-compose -f docker-compose.yml up -d
#表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
#数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
#创建管理用户
python3 manage.py createsuperuser
#重启服务
docker restart archery
#日志查看和问题排查
docker logs archery -f --tail=10
logs/archery.log
访问
修改配置项

配置项说明
基础设置
添加实例
- 实例类型分为主库/从库,支持的数据库类型为MySQL/MsSQL/Redis/PostgreSQL/Oracle/MongoDB/Phoenix/ODPS/ClickHouse,功能支持明细可查看功能清单
- 资源组:实例都需要关联资源组,才能被关联资源组的用户访问
- 实例标签:通过支持上线、支持查询的标签来控制实例是否在SQL上线/查询中显示,要使用上线和查询的实例需要关联标签

添加资源组
资源组是一堆资源对象的集合,与用户关联后用来隔离资源访问权限,一般可以按照项目组划分

资源组关联用户/实例
用户必须关联资源组才能访问资源组内的实例资源 - 关联对象管理可以批量关联实例和用户 - 在添加用户和实例的时候也可以批量关联资源组

添加权限组
权限组是一堆权限的集合,类似于角色的概念,工作流的审批配置就是配置的权限组 - 权限组可以按照角色来创建,比如DBA、工程师、项目经理,目前系统初始化数据中会提供五个默认权限组,也可自由分配权限 - 仅[sql|permission]开头的权限是控制业务操作的权限,其他都是控制Django管理后台的权限,与业务无关,可不分配

用户关联权限组/权限
用户所拥有的权限=用户所在权限组的权限+给用户单独分配的权限

设置工单上线和查询的审批流程
项目提供简单的多级审批流配置,审批流程和资源组以及审批类型相关,不同资源组和审批类型可以配置不同的审批流程,审批流程配置的是权限组,可避免审批人单点的问题

设置默认资源组和默认权限组
可在系统配置中进行修改,详见 配置项说明
设置默认资源组和默认权限组,新用户第一次登录时会自动关联,可避免用户登录后出现403(未授权)的问题