Skip to content
/ mysqldiff Public

比较旧版数据库和新版数据库字段更新,生成上线sql语句(不包括索引更新)

Notifications You must be signed in to change notification settings

aduo/mysqldiff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

mysqldiff

比较旧版数据库和新版数据库字段更新,生成上线sql语句(不包括索引更新)

##example:

###配置数据库参数 在 mysqldiff.php里面配置好要比较的数据库,这里不用命令行的参数,是因为参数太多太长,不好复用,不如写在代码内。

$src_config = ['host' => '127.0.0.1', 'user' => 'root', 'pwd' => '123456', 'db' => 'test'];//旧版数据库

$dest_config = ['host' => '127.0.0.1', 'user' => 'root', 'pwd' => '123456', 'db' => 'test_dest'];//修改过得数据库

###在命令行执行

php mysqldiff.php

结果如下:

    -- dest Tables Added 
    CREATE TABLE `add_table` (
      `id` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    -- dest Tables changed 
    ALTER TABLE `Student` ADD COLUMN age2 int(11) NOT NULL AFTER `ke`  ;
    ALTER TABLE `user` ADD COLUMN name2 varchar(255) COLLATE utf8_general_ci AFTER `id`  ;
    ALTER TABLE `user` ADD COLUMN testf int(11) NOT NULL Default 1 AFTER `name2`  ;
    ALTER TABLE `Student` DROP COLUMN age ;
    ALTER TABLE `user` DROP COLUMN name ;
    ALTER TABLE `Student` DROP PRIMARY KEY;
    ALTER TABLE `Student` CHANGE  `id`  `id` int(11) NOT NULL ;
    ALTER TABLE `Student` CHANGE  `name`  `name` varchar(30) COLLATE utf8_general_ci NOT NULL AFTER `age2`;
    ALTER TABLE `Student` ADD PRIMARY KEY (`height`);
    ALTER TABLE `Student` CHANGE  `height`  `height` int(11) NOT NULL  AUTO_INCREMENT  AFTER `name`;

    -- dest Tables deleted 
    DROP TABLE `BookRecord`;

注意:自己手动对比下数据,错了我不负责啊,😁

About

比较旧版数据库和新版数据库字段更新,生成上线sql语句(不包括索引更新)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages