首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Coding
V2EX  ›  分享创造

MAC 下 Mysql 工具 Sequel Pro 扩展(bundle)单行显示工具

  •  
  •   colincat · 110 天前 · 1141 次点击
    这是一个创建于 110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直在寻找一个比较好用的 Mac 下的 Mysql 工具

    试过一下几个:

    1. Navicat 实在是卡
    2. tableplus 还算是好用吧,但是比较蛋疼的是收费
    3. Sequel Pro 刚开始觉得不好用,现在觉得比较完美,需要调教

    直入主题,我的需求:

    1. Sequel Pro 设置提示延迟为 0.5s 这个我之前一直用默认的,提示超级慢,非常难受,调整过后非常流畅

    2. 单行按列显示,这个功能 tableplus 的非常好用,我一直希望能有一个这样的功能(然而找了一圈也没有)

    3. SQL 语句格式化 https://www.jianshu.com/p/bbfc343f3a8f 参考这个文章这个已经有了

    没有怎么办,只能看看自己能不能搞 终于搞了弄了一个,先看一下最终效果:

    已经非常完美了,可以展示出表格和按照关键字进行过滤

    起源: 先是本来要搞一个 SQL 格式化工具,查到下面这两个文章,受官方导出 JSON Bundle 的启发吧,查阅官方文档 https://www.jianshu.com/p/bbfc343f3a8f (借鉴)

    https://sequelpro.com/docs/bundles/bundle-editor

    1.配置 Sequel Pro bundle 选项 Bundles -> Bundle Editor -> Date table 点击 show -> 然后点击左下角+号 ,添加一个新的,按下图设置即可

    bundle scope : Date Table

    Input: select rows(csv)

    output: show as HTML

    也可以选择 SHOW AS HTML TOOLTIP 进行直接提示

    1.使用 Python 解析出相应的内容 csv 格式的,代码比较简单,主要是 python 不熟

    2.按照 table 固定格式输出 HTML 即可

    3.通过 js 进行过滤 table 中的元素

    #!/usr/bin/python
    #coding=utf-8
    
    import urllib2, urllib
    
    import json
    
    import sys
    
    reload(sys)
    
    sys.setdefaultencoding('utf-8')
    
    
    data = sys.stdin.readlines()
    
    #过滤掉没数据表格
    if len(data) > 0 :
        print '<input type="text" id="filterName"  style="width:140px;height:30px"/> <button id="filterBtn">filter</button>'
        print '<button id="resetBtn">reset</button><br>'
    else:
        exit(0)
    
    header = data[0].strip('\n');
    headers = header.split(",")
    
    rowdata = data[1];
    rowdatas = rowdata.split(",")
    content_tab_row = '<table border="1" cellspacing="0">  '
    row_tr  = ""
    for index in range(len(headers)):
        row_tr = row_tr  +  "  <tr><th>" +headers[index].strip('"') +" </th><th>" +rowdatas[index].strip('"') +"</th> " + "</tr>"
    
    content_tab_row = content_tab_row + row_tr + "</table>"
    print content_tab_row
    
    #引入 jQuery
    print '<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>'
    print '<script type="text/javascript">'
    print 'jQuery.expr[":"].contains=function(a,i,m){return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0};'
    print '$("#filterBtn").click(function(){var keyword=$("#filterName").val();if(keyword==undefined||keyword==""){return}$("table tbody tr").hide().filter(":contains(\'"+(keyword)+"\')").show()});'
    print '$("#resetBtn").click(function(){window.location.reload()});'
    print '</script>'
    

    这样就算是大功告成了。

    遇到问题: 刚开始觉得实现了展示即可,但是还是非常想实现过滤功能的,这个功能很常用, 查看文档发现可以支持 SHOW AS HTML 是支持 JavaScript 的 但是一直尝试不成功,后来发现其实页面导出的就是 HTML,那按理说就可以执行 js 代码,然后进行简单测试发现真的可以实现这个功能。 所以后来又添加上了 filter 功能。

    Github :https://github.com/colincatsu/Sequel-Pro-Bundles

    也可以直接下载导入即可 : https://github.com/colincatsu/Sequel-Pro-Bundles/releases/download/1.0.0/one_row_show_filter.spBundle.zip

    10 回复  |  直到 2019-08-28 10:30:44 +08:00
        1
    wu67   110 天前
    之前用 Sequel Pro 的时候, 每次退出都弹个窗说崩溃还是停止响应啥的(具体信息忘记了), 那个怎么整啊? 烦得要死
        2
    colincat   110 天前
    @wu67 遇到过,但是要比 Navicat 强很多,总不至于莫名奇怪的卡死
        3
    colincat   110 天前
    @wu67 建议你先关闭连接,然后再退出试试
        4
    jyjsjd   110 天前
    很久不更新了已经弃用
        5
    colincat   110 天前
    @jyjsjd 经过调教以后感觉比以前好用多了,TablePlus 不错,无奈需要花钱
        6
    zhangneww   110 天前
    Sequel Pro 也经常崩溃啊。。。现在用 DataGrip 不错,就是耗内存
        7
    wu67   110 天前
    @colincat 试过, 但是没用呀. 退出的时候还是弹个窗, 加上长期没更新修复, 我已经被恶心到卸载了
        8
    hteen   110 天前
    @wu67 使用 TestBuild 版本就好了, 稳定版没兼容新版 MacOS, https://sequelpro.com/test-builds
        9
    azssjli   110 天前
    我还以为这货不更新了,也来还有测试版
        10
    raofeng   105 天前
    +1,还以为这货不更新了,原来还有测试版,测试版好用多了啊
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2599 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 13:43 · PVG 21:43 · LAX 05:43 · JFK 08:43
    ♥ Do have faith in what you're doing.