wambacom / dbff
0.6.0
2014-03-27 20:42 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-24 15:42:55 UTC
README
Dbff
Dbff(db和diff的组合,发音类似于dibiff)——用于比较数据库结构的工具。目前仅适用于MySQL。
Dbff可以比较
- 数据库
- 表
- 列
- 索引
- 数据类型
显然,它并不涵盖MySQL结构的100%。我们只支持目前需要的部分。但你可以改进这个库,欢迎;)
Dbff结构
Dbff由几个解耦的部分组成
- 元素——你可以创建它,用任何值填充并比较
- 解析器——将来自'show create'语句的元素的字符串表示转换为命名值数组的解析器。你可以使用这些值,例如初始化元素或制作自己的差异
- 构建器——创建元素的辅助工具。它将解析器和其它构建器作为依赖项,并使用它们来构建元素
- dbffer——dbff工具本身。它接受两个元素,并以数组的形式产生一些差异
元素
共有6个元素
- typeprop——某些类型的一组属性
- 类型
- 索引
- 列
- 表
- 数据库
解析器
我们为每个元素提供了解析器
- 类型解析器(用于类型和typeprop)——从列解析类型定义
- 索引解析器——从"create table"语句中解析索引定义
- 列解析器——从"create table"语句中解析列定义
- 表解析器——解析整个"create table"语句
- 数据库解析器——解析"create database"语句
解析器返回结构体——具有每个元素特定键的数组。请参阅模式以了解结构键。
所有解析器都具有parse
方法。
构建器
解析器返回结构体,因此可以用于填充元素。手动执行此操作很无聊。因此,构建器为您执行此操作。它们可以直接从字符串创建元素。
我们为每个元素提供了构建器
- 类型构建器
- 索引构建器
- 列构建器
- 表构建器
- 数据库构建器
所有构建器都具有createFromString
方法。
复杂的构建器具有许多依赖项,因此为了更容易创建默认构建器,请使用DefaultBuilderFactory
。
Dbffer
Dbffer可以使用compareElements
方法比较元素,并使用compareCollections
方法比较集合。
依赖项
此包没有依赖项。其组件是解耦的。你可以只使用解析器,或者你可以手动填充元素,或者你可以添加自己的元素,或者你可以实现自己的解析器,同时仍然使用Dbff。
示例
文档正在开发中。请参阅此包提供的example.php文件。
待办事项
- 文档和更多示例
- dbff-core——此包,主要功能
- dbff-altr——从dbff输出构建alter语句的工具
- dbff-ignr——忽略dbff输出中某些模式部分的工具(例如,你不想比较字符集)
- dbff-drvr——直接从提供的数据库连接创建dbff的工具
- dbff-humn——将dbffer的输出人类化(而不是不表达性的数组)
- dbff-dbff——dbff对象而不是数组
- dbff-full——构建所有dbff子包,无限制的力量:)