lbigroupp/database-checker

获取实际模式和JSON配置之间的差异

v2.0.2 2023-01-18 11:26 UTC

README

Coverage Status Build Status Scrutinizer Code Quality

我遇到了一个客户数据库同步的问题。我没有工具来检查客户端实例是否确实有效。

待办事项

  • 管理FOREIGN KEY(取决于存储引擎)。

  • 创建MysqlDatabase类以管理mysql的版本升级,例如,在5.6之前的版本中,fulltext索引在innodb上没有处理。

  • 允许忽略某些表。

  • 允许忽略某些列。

  • 允许忽略某些索引。

  • 允许修改列。(添加、修改、删除、重命名)

  • 在创建MysqlDatabase后验证json/对象的导出。

  • 处理mysql 5.5的默认版本:current_timestamp => default now() update default now()

完成

  • 从JSON文件生成对象。

  • 从数据库生成对象。

  • ENUM('0','1')转换为TYINT(1)

  • 生成两个对象之间的diff。

  • 敏感处理大小写。

  • 集成collate检查。

  • 创建FULLTEXT索引。

  • 检查存储引擎

  • 处理DROP COLUMNS

  • 一旦完成对DROPREMOVE COLUMNS的处理,允许软件仅通过配置进行创建。

  • ALTER COLUMN之前删除索引。

  • 检查某些表的data(例如:可能的称呼列表)。

  • 添加结构优化(例如:在具有许多条记录的表中使用TEXTBLOB)。

  • 索引建议。

  • 从SQL查询中验证索引是否已定义。

// watcher
gulp start
// lance les tests unitaires (nécessite phpunit)
gulp phpunit
// prépare le projet pour la production
gulp build
// permet de générer la couverture du code (nécessite xdebug/phpuni)
gulp coverage