感謝一波:
此文是看大佬的文章SOAR的IDE插件——您的貼身DBA保鏢操作的過程及問題的解決
一岗憋、說明
1、soar github: 對(duì)SQL進(jìn)行優(yōu)化和改寫的自動(dòng)化工具日矫。 由小米人工智能與云平臺(tái)的數(shù)據(jù)庫(kù)團(tuán)隊(duì)開發(fā)與維護(hù)斋攀。
2到腥、SublimeLinter-soar github:Sublime text 的插件账锹,安裝后可以直接給出提示萌业。
3、安裝插件前確保soar可用奸柬,即官方的例子實(shí)現(xiàn)如下效果
二生年、安裝---如大佬g(shù)ithub的說明去操作
1、使用SublimeLinter-soar 插件必須先安裝 SublimeLinter 3
1.1廓奕、Sublime Text 打開Preferences -> Browse Packages...
會(huì)打開一個(gè)文件夾
1.2抱婉、執(zhí)行git clone https://github.com/SublimeLinter/SublimeLinter.git
,下載文件到上述目錄
2桌粉、安裝并配置插件
2.1蒸绩、執(zhí)行git clone https://github.com/liipx/SublimeLinter-soar.git
,下載插件到上述目錄
2.2、打開Preferences -> Package Settings -> SublimeLinter -> Settings
铃肯,然后在右邊的 Settings - User 加入如下代碼:
// SublimeLinter Settings - User
{
"linters": {
"soar": {
"soar_path":"you_soar_path"
//"soar_path":"/XXX/xxx/soar" 一定要到soar
}
}
}
2.3患亿、重啟 Sublime Text, 新建一個(gè)sql文件押逼,寫入官方的測(cè)試語(yǔ)句步藕,可得如下效果
2.4、保存或者修改文件的時(shí)候就會(huì)檢查挑格,如果檢查到有問題咙冗,需要優(yōu)化,就會(huì)出現(xiàn)框恕齐,鼠標(biāo)放上去就會(huì)提示乞娄。如果沒有需要優(yōu)化的就不會(huì)有框。
到這里插件已經(jīng)可以使用了显歧,但是這樣并不能連接我們自己的數(shù)據(jù)庫(kù)進(jìn)行測(cè)試仪或,故修改一點(diǎn)點(diǎn)大佬的插件代碼 ∠( ? 」∠)_
3、修改插件
3.1士骤、打開剛剛下載的 SublimeLinter-soar 的 linter.py文件范删,找到
cmd = persist.settings.get('linters').get('soar').get("soar_path") + " -report-type lint -query"
修改為
cmd = persist.settings.get('linters').get('soar').get("soar_path") + " -config " + persist.settings.get('linters').get('soar').get("soar_yml_path") + " -report-type lint -query"
3.2、在剛剛的Preferences -> Package Settings -> SublimeLinter -> Settings
拷肌,右邊的 Settings - User 加入一行代碼到旦,最終如下
// SublimeLinter Settings - User
{
"linters": {
"soar": {
"soar_path":"/XXX/xxx/soar",
"soar_yml_path":"/XXX/xxx/soar.yml"
}
}
}
注:soar.yml 是我自己寫的文件,可換成你自己本地的soar config 文件
巨缘,config 文件官方說明
3.3添忘、即加上 -config
參數(shù)及對(duì)應(yīng)的文件路徑,最后可得如下效果
由于已經(jīng)使用了我自己的配置文件若锁,發(fā)現(xiàn)無(wú)此表搁骑,此語(yǔ)句執(zhí)行失敗了。
到這里已經(jīng)基本滿足需求了,但是發(fā)現(xiàn)信息有時(shí)候太少了仲器,需要看更多一點(diǎn)煤率,可如下操作。
4乏冀、打印詳細(xì)信息在控制臺(tái)
4.1蝶糯、在剛剛的Preferences -> Package Settings -> SublimeLinter -> Settings
,左邊 的debug打開辆沦, "debug": true
4.3昼捍、再次打開剛剛下載的 SublimeLinter-soar 的 linter.py文件 修改同一個(gè)位置,即去掉-report-type lint
众辨,使用默認(rèn)的markdown格式端三。
persist.settings.get('linters').get('soar').get("soar_path") + " -config " + persist.settings.get('linters').get('soar').get("soar_yml_path") + " -report-type lint -query"
注:但是由于不符合SublimeLinter的格式要求,不能直接顯示在上面
鹃彻, 官方說明
4.2、使用 control + `
妻献,打開Sublime Text 的控制臺(tái)蛛株,就可以看到詳細(xì)的信息了。
三育拨、遇到的問題
1谨履、soar cannot locate 'soar'
錯(cuò)誤 其實(shí)一直沒有找到真實(shí)的原因@( ̄- ̄)@
- 檢查soar的路徑?jīng)]有錯(cuò)誤
- 打開
linter.py
文件和Sublime Text 的控制臺(tái),找到對(duì)應(yīng)的未知加入下面?zhèn)z行代碼 - 保存一下
linter.py
try:
print(persist.settings.get('linters').get('soar').get("soar_path")) #新代碼 打印出路徑而已
print(persist.settings.get('linters').get('soar').get("soar_yml_path")) #新代碼 打印出路徑而已
cmd = persist.settings.get('linters').get('soar').get("soar_path") + " -config " + persist.settings.get('linters').get('soar').get("soar_yml_path") + " -report-type lint -query"
except Exception as e:
cmd = "soar -report-type lint -query"
- 然后在控制臺(tái)看到熬丧,如下圖(后面兩個(gè)地址是我存文件的地址)
- 這時(shí)候試一下發(fā)現(xiàn)就可以用了笋粟,但是重啟后可能又失效了,然后我以為每次都需要重復(fù)上面的步驟才行析蝴,結(jié)果試了幾次以后就自動(dòng)有效了害捕。
- 希望有大佬知道具體原因可以說一聲呢~~~(?????????)