4
我們正在重構我們的數據庫,我們需要查找我們的PHP腳本中正在引用的所有表。我正在考慮SQL解析器,但我需要知道表中出現的特定文件。它需要在下面兩種情況下找到表contacts
,然後列出腳本位置。查找並列出在腳本中訪問的所有MySQL表
SELECT * FROM contacts WHERE...
SELECT * FROM `contacts` WHERE...
我們正在重構我們的數據庫,我們需要查找我們的PHP腳本中正在引用的所有表。我正在考慮SQL解析器,但我需要知道表中出現的特定文件。它需要在下面兩種情況下找到表contacts
,然後列出腳本位置。查找並列出在腳本中訪問的所有MySQL表
SELECT * FROM contacts WHERE...
SELECT * FROM `contacts` WHERE...
嘗試PHPStorm。它上面有一個叫'數據庫工具'的功能。配置完成後,您可以使用「查找用法」功能來跟蹤所有的表引用的項目中的
更多信息here
如果不出意外,你可以做一個強力的方法:您可以通過表的列表information_schema數據庫,然後將該列表與bash腳本一起使用,該腳本爲源樹中的每個表名執行grep。如果你的表名是常見的話,結果中可能會有一些「噪音」,但你會得到所有表的引用以及文件名的列表。 – 2013-03-07 19:50:35
偉大的想法本尼。然而,更準確的東西將是理想的。我可以預見到很多「噪音」,就像你用我們的表名一樣。 – user2019528 2013-03-07 21:20:16
不幸的是,我想不出一個更好,更準確的方法。當您針對所有表名運行grep時,您可以將該輸出傳輸到一個文件,然後提出一些其他搜索方法(可能使用文本編輯器),以便您更輕鬆地篩選「噪聲」。搜索'FROM $ table'或'UPDATE $ table'將是一個開始,但我仍然想看看所有的行,以確保我沒有錯過一些古怪的SQL語句。 – 2013-03-08 14:17:22