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