sql-diff
介绍
本项目实现了比较 MySQL 建表语句的差异,并生成结构同步代码,功能类似 Navicat 的结构同步。
支持:
-
表选项(注释、引擎等)
-
字段
-
索引
-
外键
-
分区
-
视图
安装
composer require yurunsoft/sql-diff
使用说明
$sql1 = <<<SQL
CREATE TABLE `a` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
SQL;
$sql2 = <<<SQL
CREATE TABLE `a` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
SQL;
// 返回将 $sql1 结构升级到 $sql2 的 SQL 语句数组
$sqls = \Yurun\SqlDiff\SqlDiff::diff($sql1, $sql2);
var_dump($sqls);
运行环境
- PHP >= 7.4
版权信息
本项目依赖 phpmyadmin/sql-parser,所以开源协议受到污染,必须是 GPL-2.0,所有基于本项目的代码都要开源。
建议开发成轻量的功能单一的,独立脚本、工具、服务,并开源,这样就不违反开源协议了。
捐赠
开源不求盈利,多少都是心意,生活不易,随缘随缘……