用于分析SQL数据库中依赖项的工具包。
sqldd的Python项目详细描述
SQL数据依赖工具
sql数据依赖工具(sqldd)是一个tookit,用于分析数据库中行之间的依赖关系。给定一个表和一个主键,它递归地分析外键,以生成初始“根行”所依赖的所有下游表和外键的映射。
安装
sqldd模块是published on the Python Package Index,因此您可以 使用pip或easy_install安装它。
pip install sqldd
或:
easy_install sqldd
它在路径中安装一个sqldd模块,以便简单地使用shell。
用法
这个工具最常用的用法是从带有sqldd的shell中获取。
例如,要查找表A中第53行的依赖项:
$: sqldd A 53 --database sqldd_db --pretty { "A": [ 53 ], "D': [ 1, 2, 20 ], "M': [ 48 ] }
这表示在该行的完整依赖关系树中,表D和M具有与外键相关的行。这可能不是A的直接子依赖项,但可能是子依赖项(A:53 --> D:1 --> M:48)
多行
对于更复杂的分析(其中可能需要查看多个表/行),可以使用表名作为键指定json文件,而值是主键数组。
{ "A": [53], "another_table": [1, 4, 10], "one_more_table": ["string_pk_1", "string_pk_2"] }
现在调用将提供更多输出:
$: sqldd --json input.json --database sqldd_db --pretty { "A": [53], "D": [1, 2, 20], "M": [48], "P": [800, 908], "another_table": [1, 4, 10, 22, 28], "one_more_table": ["string_pk_1", "string_pk_2", "string_pk_4444"] }
Docker
该工具的Docker图像也可用。使用docker run调用它的方式与pip命令相同。
$: docker run --rm rkeilty/sqldd A 53 --database my_db --pretty { "A": [ 53 ], "D': [ 1, 2, 20 ], "M': [ 48 ] }
选项
usage: sqldd [-h] [--json JSON_FILE] [--server SERVER] [--port PORT] --database DATABASE [--username USERNAME] [--password PASSWORD] [--pretty] [--sqldump] [--sqldump_table_defs] [table] [primary_key] SQL Data Dependency Tool One of either ([table][primary_key]) or [--json] is required. positional arguments: table Table to analyze primary_key Primary key for row in table to analyze optional arguments: -h, --help show this help message and exit --json JSON_FILE File containing tables and rows to analyze --server SERVER Database server --port PORT Database port --database DATABASE Database name --username USERNAME Database username --password PASSWORD Database password --pretty Pretty print the output --sqldump Generate a sql dump file of all dependencies --sqldump_table_defs Dump _all_ table defs, even those without dependencies. Useful for constructing skeleton DBs.
待办事项
- 允许从根行向上遍历,而不仅仅是下游依赖项。
- 不支持复合主键。
- 仅限于mysql,请展开连接字符串以允许anysql兼容的数据库访问。
许可证
sqldd根据3子句bsd许可的条款获得许可。
贡献
欢迎所有投稿,包括但不限于:
- 文档修复/更新
- 新功能(请求和实现)
- 错误修复(请参阅问题列表)
如果在代码中遇到任何错误,请在github上提交问题: https://github.com/rkeilty/sql-data-dependency/issues。
版本
- 版本:1.0.0
- 发布日期:2017-02-07
修订历史
版本1.0.0
- 发布日期:2017-02-07
- 更改:
- python 2/3可移植性
- 停靠命令
- 基本测试
- 简化的外壳连接
版本0.9.2
- 发布日期:2017-02-03
- 更改:
- 允许旧的sqlalchemy用法
版本0.9.1
- 发布日期:2017-01-28
- 更改:
- 修复mysqldump命令检查
- 文档更新
版本0.9.0
- 发布日期:2017-01-27
- 更改:
- 初始版本