PlanetScale SchemaDiff 工具介绍
概述
schemadiff 是 PlanetScale 推出的数据库模式(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'
















