12 个版本

0.2.8 2024 年 4 月 3 日
0.2.7 2024 年 3 月 25 日
0.2.3 2023 年 5 月 15 日
0.2.2 2021 年 7 月 20 日
0.1.2 2021 年 5 月 31 日

#277数据库接口

Download history 2/week @ 2024-05-15 4/week @ 2024-05-22 1/week @ 2024-06-12 92/week @ 2024-07-24 15/week @ 2024-07-31

107 每月下载量
spawnflake-cli 中使用

MIT 许可证

57KB
1.5K SLoC

一个像素鱼 Spawnflake Rust

Spawnflake 是一个针对 MySQL 数据库的无模式、随机和/或基于模式的生成器。

更新内容

请参阅 变更日志 了解更新和新功能。

用法

此库通过提供配置文件(config.json)来工作。配置分为两个部分。

连接属性(必需)

 "mysql_configuration": {
        "address": "localhost",
        "port": 3306,
        "user": "local",
        "password": "password",
        "schema": "test"
    }

模式类型(可选)

 "types": {
        "string": [
            {
                "name": "column_name",
                "rules": []
            }
        ],
        "integer": [
            {
                "name": "column_name",
                "rules":[]
            }
        ],
        "float": [
            {
                "name": "column_name",
                "rules":[]
            }
        ]
    }

规则

  • 数字类型和日期的规则仅为所需范围(从,到)。**重要**!小值需要在列表中首先列出。
  • 字符串的规则是组合的,您提供混合匹配的集合。例如。
   "rules": [
                    [
                        "Jo",
                        "Ni",
                        "Ste",
                        "Da",
                        "Sco",
                        "Ma"
                    ],
                    [
                        "ve",
                        "vi",
                        "pha",
                        "ro",
                        "na",
                        "ri"
                    ],
                    [
                        "n",
                        "ck",
                        "tt",
                        "d",
                        "than",
                        "na"
                    ]
                ]

这可以创建真实姓名,如 David,也可以创建完整的随机组合,如 Jophack

已知限制

  • 在处理循环依赖时,当前无法回溯更新键。此功能计划在未来版本中实现。
  • 如果外键是唯一的,则该表中插入的记录将更少。尚不支持唯一的外键值。
  • 在某些情况下,配置中的数字验证未执行,与问题表关联的记录可能会被
    • 跳过
    • 恐慌
    • 根据具体情况使用默认值。

支持

数据库支持

MySQL

  • 支持的数据类型和生成器
数据存储 数据类型 随机 模式
MySQL varchar ✔️ ✔️
MySQL int ✔️ ✔️
MySQL unsigned int ✔️ ✔️
MySQL smallint ✔️ ✔️
MySQL unsigned smallint ✔️ ✔️
MySQL tinyint/unsigned tinyint ✔️ ✔️
MySQL mediumint ✔️ ✔️
MySQL bigint ✔️ ✔️
MySQL unsigned bigint ✔️ ✔️
MySQL decimal ✔️ ✔️
MySQL float ✔️ ✔️
MySQL double ✔️ ✔️
MySQL bit ✔️
MySQL time ✔️ ✔️
MySQL timestamp ✔️ ✔️
MySQL date ✔️ ✔️
MySQL year ✔️
MySQL char ✔️
MySQL binary ✔️
MySQL text ✔️
MySQL longtext ✔️
MySQL blob/longblob ✔️
MySQL enum ✔️

CLI

本存储库中的主要项目是一个库,但也在crates.io上发布了命令行界面版本。CLI的代码位于./cli。请查阅README以获取使用方法和更多信息。

运行示例

运行示例需要在test文件夹中运行docker-compose。请确保您已安装

  • Docker
  • 一个SQL客户端/或访问MySQL CLI以查看生成的记录的方法

要运行示例,请执行

cargo run --example generate_mysql

贡献

非常欢迎您的贡献。您需要做的就是发起一个拉取请求

依赖项

~17–32MB
~560K SLoC