yurunsoft/sql-diff

There is no license information available for the latest version (v1.0.5) of this package.

v1.0.5 2023-06-16 01:19 UTC

This package is auto-updated.

Last update: 2024-11-16 04:17:41 UTC


README

Latest Version Php Version License

介绍

本项目实现了比较 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);

运行环境

版权信息

本项目依赖 phpmyadmin/sql-parser,所以开源协议受到污染,必须是 GPL-2.0,所有基于本项目的代码都要开源。

建议开发成轻量的功能单一的,独立脚本、工具、服务,并开源,这样就不违反开源协议了。

捐赠

开源不求盈利,多少都是心意,生活不易,随缘随缘……