diff-kit


Namediff-kit JSON
Version 0.1.5 PyPI version JSON
download
home_pagehttps://gitee.com/Test-Alan/diff-kit
Summary对比工具集
upload_time2024-09-09 02:39:50
maintainerNone
docs_urlNone
authoralan
requires_python>=3.8
licenseApache License 2.0
keywords diff mysql db
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 对比工具集

## 一. 项目介绍

做一个快速的对比工具集

### 目前实现功能
1. 数据库对比
    - mysql
    - pgsql

# 二. 数据库对比
### 1. 安装
```shell
pip install diff-kit
```
### 2. 使用
```python
from diff_kit.db_diff.core import DbDiffRunner
"""
参数说明:
report_name: str 报告名称
db_type: str 数据库类型,目前支持[mysql, pgsql]
db_conn_a: dict 数据库连接信息 {"host": "127.0.0.1", "port": 3306, "user": "root", "password": "123456"}
db_conn_b: dict 数据库连接信息 {"host": "127.0.0.1", "port": 3306, "user": "root", "password": "123456"}
db_name_a: str,数据库A的名称。
table_name_a: str,表A的名称。
table_name_b: str,表B的名称。
db_name_b: str = None,数据库B的名称,默认为None。
query_condition_a: str = None,查询条件A,为字符串格式,默认为None。
query_condition_b: dict = None,查询条件B,为字典格式,默认为None。
diff_columns: list = None,需要进行差异比较的列名列表,默认为None。
exclude_columns: list = None,需要排除在比较之外的列名列表,默认为None。
mapping: dict = None,列名映射字典,用于指定表A的列名如何映射到表B的列名,默认为None。
compare_count: bool 是否只对比行数
only_generate_failed_report: 是否仅失败时生成报告,
report_type: str = 'excel', 报告类型,默认excel 可选['excel', 'text]
"""
params = {
    "report_name": "demo",
    "db_type": "mysql",
    "db_conn_a": {"host": "127.0.0.1", "port": 3306, "user": "root", "password": "123456"},
    "db_conn_b": {"host": "127.0.0.1", "port": 3306, "user": "root", "password": "123456"},
    "db_name_a": "test",
    "table_name_a": "test_table1",
    "table_name_b": "test_table2",
    "query_condition_b": ["id"],
}
DbDiffRunner(**params).diff()
```

### 3. 查看报告
报告在output目录下
![img.png](img.png)

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitee.com/Test-Alan/diff-kit",
    "name": "diff-kit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "diff mysql db",
    "author": "alan",
    "author_email": "280262569@qq.com",
    "download_url": "https://files.pythonhosted.org/packages/89/f2/9da3c781a0d61b4b6bb7bd1ab0f16610fb7f3760320ca0e59278a1b1927f/diff_kit-0.1.5.tar.gz",
    "platform": null,
    "description": "# \u5bf9\u6bd4\u5de5\u5177\u96c6\r\n\r\n## \u4e00. \u9879\u76ee\u4ecb\u7ecd\r\n\r\n\u505a\u4e00\u4e2a\u5feb\u901f\u7684\u5bf9\u6bd4\u5de5\u5177\u96c6\r\n\r\n### \u76ee\u524d\u5b9e\u73b0\u529f\u80fd\r\n1. \u6570\u636e\u5e93\u5bf9\u6bd4\r\n    - mysql\r\n    - pgsql\r\n\r\n# \u4e8c. \u6570\u636e\u5e93\u5bf9\u6bd4\r\n### 1. \u5b89\u88c5\r\n```shell\r\npip install diff-kit\r\n```\r\n### 2. \u4f7f\u7528\r\n```python\r\nfrom diff_kit.db_diff.core import DbDiffRunner\r\n\"\"\"\r\n\u53c2\u6570\u8bf4\u660e\uff1a\r\nreport_name: str \u62a5\u544a\u540d\u79f0\r\ndb_type: str \u6570\u636e\u5e93\u7c7b\u578b\uff0c\u76ee\u524d\u652f\u6301[mysql, pgsql]\r\ndb_conn_a: dict \u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f {\"host\": \"127.0.0.1\", \"port\": 3306, \"user\": \"root\", \"password\": \"123456\"}\r\ndb_conn_b: dict \u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f {\"host\": \"127.0.0.1\", \"port\": 3306, \"user\": \"root\", \"password\": \"123456\"}\r\ndb_name_a: str\uff0c\u6570\u636e\u5e93A\u7684\u540d\u79f0\u3002\r\ntable_name_a: str\uff0c\u8868A\u7684\u540d\u79f0\u3002\r\ntable_name_b: str\uff0c\u8868B\u7684\u540d\u79f0\u3002\r\ndb_name_b: str = None\uff0c\u6570\u636e\u5e93B\u7684\u540d\u79f0\uff0c\u9ed8\u8ba4\u4e3aNone\u3002\r\nquery_condition_a: str = None\uff0c\u67e5\u8be2\u6761\u4ef6A\uff0c\u4e3a\u5b57\u7b26\u4e32\u683c\u5f0f\uff0c\u9ed8\u8ba4\u4e3aNone\u3002\r\nquery_condition_b: dict = None\uff0c\u67e5\u8be2\u6761\u4ef6B\uff0c\u4e3a\u5b57\u5178\u683c\u5f0f\uff0c\u9ed8\u8ba4\u4e3aNone\u3002\r\ndiff_columns: list = None\uff0c\u9700\u8981\u8fdb\u884c\u5dee\u5f02\u6bd4\u8f83\u7684\u5217\u540d\u5217\u8868\uff0c\u9ed8\u8ba4\u4e3aNone\u3002\r\nexclude_columns: list = None\uff0c\u9700\u8981\u6392\u9664\u5728\u6bd4\u8f83\u4e4b\u5916\u7684\u5217\u540d\u5217\u8868\uff0c\u9ed8\u8ba4\u4e3aNone\u3002\r\nmapping: dict = None\uff0c\u5217\u540d\u6620\u5c04\u5b57\u5178\uff0c\u7528\u4e8e\u6307\u5b9a\u8868A\u7684\u5217\u540d\u5982\u4f55\u6620\u5c04\u5230\u8868B\u7684\u5217\u540d\uff0c\u9ed8\u8ba4\u4e3aNone\u3002\r\ncompare_count: bool \u662f\u5426\u53ea\u5bf9\u6bd4\u884c\u6570\r\nonly_generate_failed_report: \u662f\u5426\u4ec5\u5931\u8d25\u65f6\u751f\u6210\u62a5\u544a,\r\nreport_type: str = 'excel', \u62a5\u544a\u7c7b\u578b\uff0c\u9ed8\u8ba4excel \u53ef\u9009['excel', 'text]\r\n\"\"\"\r\nparams = {\r\n    \"report_name\": \"demo\",\r\n    \"db_type\": \"mysql\",\r\n    \"db_conn_a\": {\"host\": \"127.0.0.1\", \"port\": 3306, \"user\": \"root\", \"password\": \"123456\"},\r\n    \"db_conn_b\": {\"host\": \"127.0.0.1\", \"port\": 3306, \"user\": \"root\", \"password\": \"123456\"},\r\n    \"db_name_a\": \"test\",\r\n    \"table_name_a\": \"test_table1\",\r\n    \"table_name_b\": \"test_table2\",\r\n    \"query_condition_b\": [\"id\"],\r\n}\r\nDbDiffRunner(**params).diff()\r\n```\r\n\r\n### 3. \u67e5\u770b\u62a5\u544a\r\n\u62a5\u544a\u5728output\u76ee\u5f55\u4e0b\r\n![img.png](img.png)\r\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "\u5bf9\u6bd4\u5de5\u5177\u96c6",
    "version": "0.1.5",
    "project_urls": {
        "Homepage": "https://gitee.com/Test-Alan/diff-kit"
    },
    "split_keywords": [
        "diff",
        "mysql",
        "db"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a3d4a67d820207fdce32c0516ee8ee90f250bc999762d358da064d2b4bed4a2",
                "md5": "545f4346a5e148141f3f1c6bf38bce13",
                "sha256": "32ece5bfa5eeef75bb8fc1f7314929dfa4bf09771b66fd30a43b4c3e3bd25c3a"
            },
            "downloads": -1,
            "filename": "diff_kit-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "545f4346a5e148141f3f1c6bf38bce13",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 23111,
            "upload_time": "2024-09-09T02:39:48",
            "upload_time_iso_8601": "2024-09-09T02:39:48.387408Z",
            "url": "https://files.pythonhosted.org/packages/3a/3d/4a67d820207fdce32c0516ee8ee90f250bc999762d358da064d2b4bed4a2/diff_kit-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "89f29da3c781a0d61b4b6bb7bd1ab0f16610fb7f3760320ca0e59278a1b1927f",
                "md5": "eea372f290b23699f9edf35d42936ca2",
                "sha256": "417a02bb0fbc5fda8569f6b7f1e68be6039e3562ee392b89fa7cf08adb991ab0"
            },
            "downloads": -1,
            "filename": "diff_kit-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "eea372f290b23699f9edf35d42936ca2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 18878,
            "upload_time": "2024-09-09T02:39:50",
            "upload_time_iso_8601": "2024-09-09T02:39:50.086093Z",
            "url": "https://files.pythonhosted.org/packages/89/f2/9da3c781a0d61b4b6bb7bd1ab0f16610fb7f3760320ca0e59278a1b1927f/diff_kit-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-09 02:39:50",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "diff-kit"
}
        
Elapsed time: 0.55358s