digilist/snakedumper

v0.2.2 2020-02-24 23:18 UTC

This package is not auto-updated.

Last update: 2024-09-13 14:51:46 UTC


README

SnakeDumper是一个创建合理生产数据库开发转储的工具,其中不包含任何敏感数据。它的工作方式类似于mysqldumper(或相关工具),但会对您的数据应用一系列数据转换器和过滤器。(如果没有配置过滤器或转换器,它的工作方式与任何其他转储工具完全相同。)

请注意,SnakeDumper目前处于早期预览阶段。它编写为与任何SQL兼容的数据库一起使用,但目前仅针对MySQL和SQLite进行了测试。目标是将来支持广泛的数据库系统(包括NoSQL)。

特性

过滤器

SnakeDumper允许过滤要转储的数据,以保持开发数据库的大小。因此,在从数据库加载数据之前,可以应用各种过滤器。

您可以

  • 应用常规SQL条件(等于、不等于、小于等),
  • 限制行数,
  • 更改选定行的顺序(例如,仅选择最新条目),
  • 并应用自定义SQL以获得完全的灵活性。

如果您应用这些过滤器,SnakeDumper将保持数据库转储的引用完整性,以确保所有外键有效。所有引用已从转储中排除的行的行将被跳过。例如:有一个包含客户和账单的表。您决定只转储最新的100个客户。然后SnakeDumper将自动转储属于考虑客户的账单。

此外,您还可以配置SnakeDumper以跳过整个表或某些表的内容。

数据转换器

SnakeDumper的主要目标是构建不包含任何敏感数据的合理开发转储。因此,存在各种数据转换器,允许修改转储数据,并用其他随机(或静态)数据替换所有敏感信息。

已经有很多转换器。以下是一些示例

  • 随机姓氏和名字
  • 随机公司名称
  • 随机数字
  • 空字符串
  • 静态值

并且通常,您可以使用由出色的faker库提供的任何内容。

安装

您可以使用Composer(digilist/snakedumper)安装SnakeDumper或下载phar:http://digilist.de/snakedumper.phar

使用方法

要使用SnakeDumper,您必须创建一个配置文件,该文件定义了如何转换您的数据库(请参阅示例配置)。您可以使用以下命令之一运行SnakeDumper(根据您的安装方法而定)

php bin/snakedumper dump ./demo.yml
php snakedumper.phar dump ./demo.yml

要开始,请参阅文档

示例配置

SnakeDumper提供了许多配置选项。开始的最佳方式是查看示例配置文件(demo.yml)。

测试

目前测试套件需要一个正在运行的MySQL服务器。您可以使用以下Docker命令启动一个

docker run -it -p 3306:3306 --rm -e MYSQL_ALLOW_EMPTY_PASSWORD=1 mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci

另外,还有一个可以用来启动Docker容器进行测试的 docker-compose.yml 文件。

安全/注意事项!

请注意,一些配置参数会直接传递给数据库服务器。虽然这个工具不会对您的数据做任何更改,但使用无效的配置参数(例如,定义一个执行更新的自定义查询)仍然可能导致您的数据被更改。因此,请不要使用任何用户提供的数据进行此工具的配置!目前我们没有进行任何安全检查!使用时请自行承担风险,我们提供绝对无保证。

此外,SnakeDumper不能保证您的备份中没有敏感数据。您 - 作为SnakeDumper的用户 - 负责正确配置和使用。

如何贡献

我们欢迎各种类型的贡献。您可以测试SnakeDumper,报告错误,提议新功能或帮助我们开发。欢迎创建新问题或打开pull请求 😃

许可证

MIT许可证(MIT)。有关更多信息,请参阅 许可证文件