模拟数据生成器专家提示
来自 Wikiprompt,自由的提示词百科全书
模拟数据生成器专家提示 一个全面的系统提示,用于使用Faker.js生成逼真的模拟数据,涵盖工作流程、领域、最佳实践和质量检查清单。
提示词内容收藏
🌐
# 模拟数据生成器
## 上下文
- **目标数据库模式**:待定义(基于项目要求)
- **所需数据量**:开发环境(小)、预发布环境(中)、负载测试(大)
- **输出格式**:JSON、SQL、CSV、TypeScript/JavaScript 对象
- **目标系统**:待定义(数据库、API 端点、测试套件)
## 生成计划
- [ ] **MOCK-PLAN-1.1 [实体/端点]**:
- **模式**:字段、类型、约束和关系
- **数据量**:每个实体生成的记录数
- **格式**:输出格式(JSON、SQL、CSV、TypeScript)
- **边界情况**:要包含的特定边界条件
- [ ] **MOCK-PLAN-1.2 [实体/端点]**:
- **模式**:字段、类型、约束和关系
- **数据量**:每个实体生成的记录数
- **格式**:输出格式(JSON、SQL、CSV、TypeScript)
- **边界情况**:要包含的特定边界条件
## 生成项
- [ ] **MOCK-ITEM-1.1 [数据集名称]**:
- **实体**:此数据服务的实体或 API 端点
- **生成器**:使用的 Faker.js 方法或自定义逻辑
- **关系**:外键引用和依赖顺序
- **验证**:如何验证生成的数据正确
- [ ] **MOCK-ITEM-1.2 [数据集名称]**:
- **实体**:此数据服务的实体或 API 端点
- **生成器**:使用的 Faker.js 方法或自定义逻辑
- **关系**:外键引用和依赖顺序
- **验证**:如何验证生成的数据正确
## 建议的代码变更
### 文件:`mock-data-generator.ts`
```typescript
import { faker } from '@faker-js/faker';
// 为可重复生成设置种子
faker.seed(12345);
export interface MockDataConfig {
entity: string;
count: number;
format: 'json' | 'sql' | 'csv' | 'typescript';
edgeCases: boolean;
}
export class MockDataGenerator {
private config: MockDataConfig;
constructor(config: MockDataConfig) {
this.config = config;
}
generate(): any {
// 根据实体类型生成数据
switch (this.config.entity) {
case 'users':
return this.generateUsers();
case 'orders':
return this.generateOrders();
default:
throw new Error(`未知实体:${this.config.entity}`);
}
}
private generateUsers(): any[] {
const users = [];
for (let i = 0; i < this.config.count; i++) {
users.push({
id: faker.string.uuid(),
name: faker.person.fullName(),
email: faker.internet.email(),
createdAt: faker.date.past(),
updatedAt: faker.date.recent()
});
}
return users;
}
private generateOrders(): any[] {
// 实现订单生成逻辑
return [];
}
}
```
### 文件:`seed-database.sql`
```sql
-- 数据库种子脚本
-- 按依赖顺序插入数据
BEGIN;
-- 插入用户
INSERT INTO users (id, name, email, created_at, updated_at)
VALUES
('uuid-1', '张三', 'zhangsan@example.com', NOW(), NOW()),
('uuid-2', '李四', 'lisi@example.com', NOW(), NOW());
-- 插入订单
INSERT INTO orders (id, user_id, total, status, created_at)
VALUES
('order-1', 'uuid-1', 99.99, 'pending', NOW()),
('order-2', 'uuid-2', 149.50, 'completed', NOW());
COMMIT;
```
### 文件:`cleanup-database.sql`
```sql
-- 清理脚本(按反向依赖顺序)
BEGIN;
DELETE FROM orders;
DELETE FROM users;
COMMIT;
```
## 命令
### 本地运行
```bash
# 安装依赖
npm install @faker-js/faker
# 运行数据生成器
npx ts-node mock-data-generator.ts
# 执行数据库种子
psql -U username -d database_name -f seed-database.sql
# 清理数据库
psql -U username -d database_name -f cleanup-database.sql
```
### CI 运行
```yaml
# .github/workflows/mock-data.yml
name: Mock Data Generation
on: [push, pull_request]
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm install
- run: npx ts-node mock-data-generator.ts
- run: psql -U ${{ secrets.DB_USER }} -d ${{ secrets.DB_NAME }} -f seed-database.sql
```
## 质量保证任务清单
- [ ] 所有生成的数据与目标模式完全匹配(类型、约束、可空性)
- [ ] 外键关系按正确的依赖顺序满足
- [ ] 确定性种子在重复执行时产生相同输出
- [ ] 包含边界情况且不破坏正常应用逻辑
- [ ] 输出格式有效且能在目标系统中无错误加载
- [ ] 提供并测试清理脚本以完全移除数据
- [ ] 生成性能满足所需数据量的要求
用法
此提示词专为 coding 设计。复制上方内容并粘贴到你常用的 AI 工具中。
为获得最佳效果,可将占位符(方括号或大写字母标示)替换为你的具体需求。
讨论
0 条评论