# 其他项目迁移指南 ## 目标结构 ``` /Users/semsevens/Desktop/workspace/daily/1113/ ├── data/ ← 共享数据目录(已迁移) │ └── 账号/ │ └── 阿里多多酱1/ │ ├── what单独解构/ │ ├── 用于pattern聚类/ │ ├── pattern相关文件/ │ └── how解构_outputs/ │ ├── how_1124_v1/ ← 当前项目输出 │ ├── how_1121_v2/ ← 未来其他项目输出 │ └── ... │ ├── how_1124_v1/ ← 已完成迁移 ✓ ├── how_1121_v2/ ← 待迁移 ├── how_1120_v3/ ← 待迁移 └── ...其他项目/ ← 待迁移 ``` ## 快速迁移步骤 ### 方式1: 手动迁移单个项目(推荐) 为每个需要使用共享数据的项目执行以下步骤: ```bash # 1. 进入项目目录 cd /Users/semsevens/Desktop/workspace/daily/1113/how_1121_v2 # 2. 删除项目内的data目录(如果存在且不需要保留) # 注意:如果这个项目有独特数据,先备份! rm -rf data # 3. 复制最新的配置文件 cp ../how_1124_v1/config/accounts.json config/accounts.json # 4. 复制最新的 path_config.py cp ../how_1124_v1/script/data_processing/path_config.py script/data_processing/path_config.py # 5. 验证配置 python script/data_processing/path_config.py ``` ### 方式2: 批量迁移脚本 创建一个脚本来批量处理: ```bash #!/bin/bash # migrate_all_projects.sh BASE_DIR="/Users/semsevens/Desktop/workspace/daily/1113" REFERENCE_PROJECT="how_1124_v1" # 要迁移的项目列表 PROJECTS=( "how_1121_v2" "how_1121_v1" "how_1120_v3" "how_1120_v2" "how_1120_v1" # 添加更多项目... ) for project in "${PROJECTS[@]}"; do echo "========================================" echo "处理项目: $project" echo "========================================" cd "$BASE_DIR/$project" || continue # 备份旧配置(如果需要) if [ -f "config/accounts.json" ]; then cp config/accounts.json config/accounts.json.backup fi # 复制新配置 cp "$BASE_DIR/$REFERENCE_PROJECT/config/accounts.json" config/accounts.json cp "$BASE_DIR/$REFERENCE_PROJECT/script/data_processing/path_config.py" script/data_processing/path_config.py # 验证 echo "验证配置..." python script/data_processing/path_config.py echo "" done echo "所有项目迁移完成!" ``` 使用: ```bash chmod +x migrate_all_projects.sh ./migrate_all_projects.sh ``` ### 方式3: 软链接方式(最简单,但不推荐) 如果某个旧项目不想修改代码,可以创建软链接: ```bash cd /Users/semsevens/Desktop/workspace/daily/1113/how_1120_v1 # 删除旧的 data 目录 rm -rf data # 创建指向共享 data 的软链接 ln -s ../data data # 验证 ls -la data ``` **注意**: 软链接方式不支持版本化输出,所有使用软链接的项目会共享同一个输出目录。 ## 迁移后的优势 ### 1. 数据共享 所有项目共享同一份输入数据,节省磁盘空间。 ### 2. 版本隔离 每个项目的输出自动保存到独立的版本目录: ``` data/账号/阿里多多酱1/how解构_outputs/ ├── how_1120_v1/ ├── how_1120_v2/ ├── how_1120_v3/ ├── how_1121_v1/ ├── how_1121_v2/ └── how_1124_v1/ ``` ### 3. 便于对比 可以轻松对比不同版本的输出结果: ```bash # 查看所有版本 ls data/账号/阿里多多酱1/how解构_outputs/ # 对比两个版本的结果 diff -r data/账号/阿里多多酱1/how解构_outputs/how_1120_v1/results \ data/账号/阿里多多酱1/how解构_outputs/how_1124_v1/results # 打开不同版本的可视化 open data/账号/阿里多多酱1/how解构_outputs/how_1120_v1/visualization/how解构结果_可视化.html open data/账号/阿里多多酱1/how解构_outputs/how_1124_v1/visualization/how解构结果_可视化.html ``` ## 验证清单 迁移完成后,确保以下内容正确: - [ ] `config/accounts.json` 中 `data_root` 设置为 `"../data"` - [ ] `script/data_processing/path_config.py` 已更新 - [ ] 运行 `python script/data_processing/path_config.py` 无错误 - [ ] 输入路径验证全部通过 ✓ - [ ] 输出版本自动识别为项目目录名 ## 常见问题 ### Q: 某个旧项目有独特的数据怎么办? 如果某个项目的 `data/` 目录包含独特数据(不在共享 data 中),有两个选择: 1. **迁移独特数据到共享目录** ```bash # 复制独特数据到共享目录 cp -r old_project/data/账号/特殊账号/* ../data/账号/特殊账号/ # 然后按正常流程迁移项目 ``` 2. **保持项目独立** ```bash # 修改该项目的配置,使用项目内 data # config/accounts.json: { "data_root": "data", // 保持使用项目内的data ... } ``` ### Q: 如何清理旧的输出数据? ```bash # 进入共享数据目录 cd /Users/semsevens/Desktop/workspace/daily/1113/data/账号/阿里多多酱1 # 查看所有版本(按时间排序) ls -lt how解构_outputs/ # 删除旧版本(谨慎操作!) rm -rf how解构_outputs/how_1113_v1 rm -rf how解构_outputs/how_1113_v2 # 或者只保留最新3个版本 cd how解构_outputs ls -t | tail -n +4 | xargs rm -rf ``` ### Q: 能否使用绝对路径? 可以,但不推荐。使用相对路径 `"../data"` 可以保持项目的可移植性。 如果确实需要绝对路径: ```json { "data_root": "/Users/semsevens/Desktop/workspace/daily/1113/data", ... } ``` ### Q: 如何恢复到迁移前的状态? ```bash # 1. 复制共享数据回项目内 cp -r ../data ./data # 2. 修改配置 # config/accounts.json: { "data_root": "data", ... } # 3. 验证 python script/data_processing/path_config.py ``` ## 推荐的项目清理流程 迁移完成后,可以清理不再需要的旧项目: ```bash # 1. 确认所有需要的输出已保存到共享data ls -la /Users/semsevens/Desktop/workspace/daily/1113/data/账号/阿里多多酱1/how解构_outputs/ # 2. 删除不再需要的旧项目 cd /Users/semsevens/Desktop/workspace/daily/1113 rm -rf how_1113_v1 rm -rf how_1113_v2 # ... # 3. 只保留最近的几个版本作为代码参考 # 建议保留: how_1124_v1, how_1121_v2, how_1120_v3 ``` ## 下次创建新项目 当你创建新项目时(比如 `how_1125_v1`),只需: ```bash # 1. 复制最新项目 cp -r how_1124_v1 how_1125_v1 # 2. 清理不需要的文件 cd how_1125_v1 rm -rf data # 删除data目录(如果复制时带过来了) # 3. 配置已经是 "../data",无需修改 # 4. 开始开发 # 输出会自动保存到:../data/账号/阿里多多酱1/how解构_outputs/how_1125_v1/ ```