清理数据库的内容。

database-sanitizer的Python项目详细描述


数据库卫生工具

pypitraviscodecov

database-sanitizer是一个从 关系数据库并对检索到的数据执行清理 根据配置文件中定义的规则。目前 卫生工具同时支持PostgreSQLMySQL数据库

安装

database-sanitizer可以使用pipPyPI安装,如下所示:

$ pip install database-sanitizer

如果您使用的是mysql,那么您需要安装这样的包 而是包括附加要求:

$ pip install database-sanitizer[MySQL]

用法

一旦安装了包,就可以使用database-sanitizer 像这样:

$ database-sanitizer <DATABASE-URL>

需要提供命令行参数DATABASE-URL,以便 知道如何从数据库中检索转储有了PostgreSQL, 可能是这样的:

$ database-sanitizer postgres://user:password@host/database

但是,除非提供配置文件,否则将不会 对检索到的数据库转储执行,这将导致我们进入下一个 部分将是

配置

卫生规则可以在用 YAML。然后将配置文件的路径指定给命令行 参数为--config的实用程序(缩写为-c)如下:

$ database-sanitizer -c config.yml postgres://user:password@host/database

配置文件使用以下语法:

config:addons:-some.other.package-yet.another.packageextra_parameters:# These parameters will be passed to the dump tool CLImysqldump:-"--single-transaction"# Included by defaultpg_dump:-"--exclude-table=something"strategy:user:first_name:name.first_namelast_name:name.last_namesecret_key:string.emptyaccess_log:skip_rows

在上面的示例配置中,首先列出了两个“addon packages“,这是python包的名称,其中消毒剂将 正在寻找消毒剂的功能。它们是完全可选的,可以 省略,在这种情况下,只有在包中定义的消毒剂函数 调用sanitizers并使用内置消毒剂。

还可以定义额外的参数以传递给转储工具( mysqldumppg_dump)。默认情况下,mysqldump将包括 --single-transaction额外参数您可以通过定义 配置文件中显式的额外参数,例如使用空数组[]

配置的strategy部分包含 卫生规则。首先定义数据库表的名称(在 后面跟表中列名的示例是user 每个映射到卫生功能名称的名称 卫生功能由两部分组成 点:python模块的名称和实际函数的名称,它将 前缀为sanitize_,因此name.first_name将是一个函数 在名为name.py的文件中调用sanitize_first_name

通过 将表策略设置为skip_rows(在 示例配置)这将忽略所有INSERT INTO(mysql)或COPY (postgresql)清除转储文件中的语句。CREATE TABLE 不会删除语句。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
未在Tomcat中加载java JAR文件   java创建了一个SpringMVC应用程序,该应用程序在身份验证后将每个请求重定向回以前的URL   Scala未来到Java完全未来   java对象数组重复擦除   Java中的国际化多语言本地化   java在运行Eclipse SWT应用程序后,它显示了许多异常   C++在应用程序运行时返回常量动态JNI数据到java对象   java比较两个未知类型的数组   java为什么以及何时在安卓中注销内容观察员   java如何使用jsoup将正确的字符集设置为proxyserver?   反射Java将变量列表转换为变量名到变量值的映射   java如何阻止编译器将单元化对象作为错误读取   java如何在Intellij IDEA或Android Studio中搜索未解析的库?