feat: 添加CSV数据生成和导入功能
新增generate_import_csv.py脚本用于生成和导入测试数据 更新README.md添加CSV数据导入指南 生成3个CSV文件并实现自动导入功能
This commit is contained in:
60
README.md
60
README.md
@@ -143,6 +143,66 @@ python manage.py runserver
|
||||
python manage.py migrate
|
||||
```
|
||||
|
||||
## CSV数据导入指南
|
||||
|
||||
### 生成CSV文件
|
||||
|
||||
项目包含一个`generate_import_csv.py`脚本,用于生成符合数据库表结构的CSV文件并导入数据。
|
||||
|
||||
1. 生成CSV文件:
|
||||
```bash
|
||||
python generate_import_csv.py
|
||||
```
|
||||
|
||||
2. 生成的CSV文件:
|
||||
- `reading_type.csv` - 阅读记录类型
|
||||
- `insight_record.csv` - 感悟记录
|
||||
- `reading_record.csv` - 阅读记录
|
||||
|
||||
### CSV文件格式说明
|
||||
|
||||
#### reading_type.csv(阅读记录类型)
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|-------|------|------|
|
||||
| name | 字符串 | 阅读类型名称(如:书籍、文章、论文等) |
|
||||
|
||||
#### insight_record.csv(感悟记录)
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|-------|------|------|
|
||||
| date | 日期 | 记录日期(格式:YYYY-MM-DD) |
|
||||
| content | 文本 | 感悟内容 |
|
||||
|
||||
#### reading_record.csv(阅读记录)
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|-------|------|------|
|
||||
| date | 日期 | 记录日期(格式:YYYY-MM-DD) |
|
||||
| type_id | 整数 | 阅读类型ID(关联reading_type表的id字段) |
|
||||
| title | 字符串 | 阅读标题 |
|
||||
| source | 字符串 | 阅读来源 |
|
||||
| progress | 字符串 | 阅读进度(如:已完成、进行中、未开始) |
|
||||
| note | 文本 | 阅读笔记 |
|
||||
|
||||
### 自定义CSV数据
|
||||
|
||||
你可以手动编辑生成的CSV文件,添加或修改数据,然后再次运行导入脚本将数据导入到数据库。
|
||||
|
||||
### 数据导入
|
||||
|
||||
脚本会自动将CSV数据导入到数据库中,导入流程:
|
||||
|
||||
1. 清空ReadingType表的现有数据(避免类型ID冲突)
|
||||
2. 导入ReadingType数据
|
||||
3. 导入InsightRecord数据
|
||||
4. 导入ReadingRecord数据
|
||||
|
||||
### 验证导入结果
|
||||
|
||||
可以使用Django shell查询数据库,验证数据是否正确导入:
|
||||
|
||||
```bash
|
||||
python -c "import os; os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'diary_family.settings'); import django; django.setup(); from core.models import ReadingType, InsightRecord, ReadingRecord; print('ReadingType数量:', ReadingType.objects.count()); print('InsightRecord数量:', InsightRecord.objects.count()); print('ReadingRecord数量:', ReadingRecord.objects.count()); print('ReadingType数据:', [rt.name for rt in ReadingType.objects.all()])"
|
||||
```
|
||||
|
||||
## 生产部署
|
||||
|
||||
### 使用Gunicorn + Nginx
|
||||
|
||||
Reference in New Issue
Block a user