wambacom/dbff

数据库差异

0.6.0 2014-03-27 20:42 UTC

This package is not auto-updated.

Last update: 2024-09-24 15:42:55 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Still maintained

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子包,无限制的力量:)