-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
添加跳板机连接数据库功能 #736
添加跳板机连接数据库功能 #736
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
感谢提交,问题不大,单元测试看一下
Codecov Report
@@ Coverage Diff @@
## master #736 +/- ##
==========================================
- Coverage 78.51% 78.45% -0.07%
==========================================
Files 79 80 +1
Lines 11004 11049 +45
==========================================
+ Hits 8640 8668 +28
- Misses 2364 2381 +17
Continue to review full report at Codecov.
|
初始化脚本还是要的, 要用sql语句改一下库的 |
我在此处是删除了我新增的一个初始化sql,因为原先是一对多所以必须写一条初始化数据,现在已经不需要就删除了。 |
哦哦, 那后续还是要加一下tunnel 表以及instance 表 的改表建表语句 |
已添加tunnel 表以及instance 表 的改表建表语句,文件为 v1.7.8_v1.7.9.sql |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
问题不大, 几个小点修改完就能merge了
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😅 不好意思, 还有两个问题
- requirements 冲突
- 现在最新的已经到了 1.7.11 所以这个sql 语句还要变一下, 建议merge 下最新代码, 根据最新的版本更名一下.
已修改了冲突部分 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏
merge 了, cc @hhyo |
所以这个功能没有界面可以配置么? |
已添加管理页面,在 管理后台>隧道配置 ,可以进行界面配置 |
我想起来隧道配置的界面还没有realase,可以先参考: |
容器部署的,连接就出现这个错误 |
可能是由于gunicorn工作模式造成的,需要修改为sync模式 |
修为为sync还是有问题,我再看看 |
确定到问题了,docker模式启动的使用脚本是 |
你好:
我在项目上添加了通过ssh隧道连接,实现跳板机连接数据库功能。fix #731
实现是通过sshtunnel包,连通跳板机之后映射目标端口到本地,这个方案在我之前的项目中使用过。在本项目中我只测试了MySQL连接,但是理论上其他数据库也是可行的。
我主要做了以下修改:
1.新增了ssh_tunnel模型,并且修改instance,增加到ssh_tunnel的外键字段。
2.新增了ssh_tunnel.py,但是需要通过类的方式实现。
3.修改 sql/engines/mysql.py 增加了__del__(self)函数,需要注意其他引擎可能也都需要增加该函数,否则隧道无法关闭。
需要注意的是:
1.初始化需要增加步骤:python3 manage.py dbshell<src/init_sql/ssh_tunnel.sql,添加无隧道初始化信息,无隧道是根据ssh_tunnel.tunnel_name == 'None'判断,这部分我写死在了代码里。
2.我不会做界面,所以没有做“添加ssh隧道界面”以及相关的界面,因此如果实际使用还需要额外新增界面部分代码。
如有疑问,请随时联系 QQ362424547