每次制作升级包我都觉得非常麻烦,特别是数据库结构的升级,人工比较数据表结构的改变,实在是太麻烦了,有没有办法可以用PHP脚本实现快速得到两个数据表的差别?

解决方案 »

  1.   

    给个参考,describe table ,然后array_diff比较差异:<?php
       $conn = mysql_connect('localhost','**','***');
       mysql_select_db("test");
       $sql = "describe oldtable";
       $sql2 = "describe newtable";
       
       $res = mysql_query($sql);
       $res2 = mysql_query($sql2);
       $result = mysql_fetch_array($res);
       $reslut2 = mysql_fetch_array($res2);
       
       print_r(array_diff($result,$result2));
       echo "<hr/>";
       print_r(array_diff($result2,$result));
      

  2.   

    软件升级本身是一个很重要的工作,每一个改动都要慎重,不要说是数据库结构了 。 最好还是用专门的Bug管理机制处理。。      不能怕麻烦。
        
      

  3.   

    mysql 其实里边有系统表的。。   你可以通过查询这些系统表得到表结构信息, 然后一对比就出来了。具体详细的看资料 : 
    http://dev.mysql.com/doc/refman/5.1/zh/information-schema.html
      

  4.   

    看看这两个表中的内容就知道了
     INFORMATION_SCHEMA.tables 
    INFORMATION_SCHEMA COLUMNS