PlanetScale SchemaDiff 工具介绍

概述

schemadiffPlanetScale 推出的数据库模式(schema)管理工具,旨在对比 MySQL 及其兼容数据库(如 PlanetScale 和 Vitess)的模式差异,并生成相应的 DDL(数据定义语言)变更语句。它主要用于数据库 schema 版本管理,帮助开发者高效、安全地执行数据库迁移。


主要功能

模式差异比较(Diff)
通过 schemadiff diff 计算两个数据库模式之间的差异,并生成 SQL 变更语句,使源模式转换为目标模式。


使用示例

1. 对比主库和从库中 test 数据库下的所有表,检查它们是否一致。
./schemadiff diff                                     \
--source 'admin:123456@tcp(127.0.0.1:6666)/test'      \
--target 'admin:123456@tcp(127.0.0.1:6667)/test' 

如果表结构不一致,会输出:

DROP TABLE `t`;
DROP TABLE `student`;
DROP TABLE `nopk`;
ALTER TABLE `t2` DROP COLUMN `cid`, DROP COLUMN `bid`, ADD COLUMN `id` int NOT NULL AUTO_INCREMENT, ADD COLUMN 
`name` varchar(50), ADD PRIMARY KEY (`id`);


2. 对比主库和从库中 test 数据库下的t2表,检查它们是否一致。

./schemadiff diff                                     \ 
--source 'admin:123456@tcp(127.0.0.1:6666)/test?#t2'  \
--target 'admin:123456@tcp(127.0.0.1:6667)/test?#t2'