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 |
|
#277 在 数据库接口
107 每月下载量
在 spawnflake-cli 中使用
57KB
1.5K SLoC
Spawnflake
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