phpple/altable

v0.1.9 2021-12-03 04:43 UTC

This package is not auto-updated.

Last update: 2024-11-11 16:31:33 UTC


README

本项目用来对通过mysqldump出来的表结构数据进行解析,分析出数据库、数据表、字段、主键、索引等信息。

Latest Stable Version Minimum PHP Version Build Status codecov

使用步骤

composer引入项目

composer require phpple/altable

通过mysqldump导出需要的表结构:

mysqldump --all-databases --no-data > dump.sql

编写php脚本分析数据库结构

<?php
require 'vendor/autoload.php';

$parser = new Phpple\Altable\Parser();
// 设定不需要分析哪些库或者表
$parser->dbFilters = [
    // 整个库不予分析
    'mysql' => null,
    // foo.bar不予分析
    'foo' => ['bar'],
];
$dbs = $parser->parse(__DIR__.'/dump.sql');

// 开始进行分析
foreach($dbs as $db) {
    foreach($db->tables as $table) {
        foreach($table->fields as $field) {
            if ($field->name == 'uid') {
                echo "`{$db->name}`.`{$table->name}` found uid field";
            }
        }
    }
}

// 通过名称查找名称为foo的DB
$parser->find($dbs, 'foo');

// 通过名称查找名称为foo.bar的Table
$parser->find($dbs, 'foo', 'bar');

// 通过名称查找表foo.bar里的字段uid
$parser->find($dbs, 'foo', 'bar', 'uid');