Web化管理数据库实例

183 阅读1分钟

背景


XXX 公司内部评估:phomyadmin 存在安全隐患,禁止在公司内使用!
日常的一些操作DB的场景,譬如修改些数据字段内容,新增一条记录,修改下表结构等操作,使用命令行,
在公司的网络环境下多多少少有些限制和不方便(需要登录堡垒机中转).


思路

运用django orm机制,实现对DB实例的管理,其中包括,使用 inspectdb 自动生成已有表的model;采用独立app管理DB实例连接;python动态加载module等来完成.

1.能够在填入基本DB实例信息的情况下,自动生成相应的访问连接配置.


用户在web端填写相应的信息,并进行提交保存


2.对DB实例中指定的Table,进行管理(即:仅对授权的表进行访问)


1.填写的基本信息中包括了需要管理的表名列表


3.通过web页面可以进行编辑数据/新增数据/编辑表结构


相应的映射关系生成之后,就可以在页面进行管理表信息&数据


技术栈

1. 前端:react系列(dva/umi/ant-design)

2. 后端: python3 +django 2.2.3 +第三方库

3. 部署: supervisor 3.3.3

4. 运行环境: centos 6.5

后端处理逻辑


1.根据填写的信息,生成对应的APP(每个app管理一个相应的实例连接)
2.根据输入的表列表,生成相应的Model文件(生成可以在django的orm中管理的model类),
方便后续使用django的orm进行管理表结构
3.加载该app,使之生效.


效果

基本信息填写页面


表数据编辑&查询页面

image.png


git仓库地址: ADD