其他项目迁移指南.md 6.7 KB

其他项目迁移指南

目标结构

/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: 手动迁移单个项目(推荐)

为每个需要使用共享数据的项目执行以下步骤:

# 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: 批量迁移脚本

创建一个脚本来批量处理:

#!/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 "所有项目迁移完成!"

使用:

chmod +x migrate_all_projects.sh
./migrate_all_projects.sh

方式3: 软链接方式(最简单,但不推荐)

如果某个旧项目不想修改代码,可以创建软链接:

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. 便于对比

可以轻松对比不同版本的输出结果:

# 查看所有版本
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.jsondata_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: 如何清理旧的输出数据?

# 进入共享数据目录
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" 可以保持项目的可移植性。

如果确实需要绝对路径:

{
  "data_root": "/Users/semsevens/Desktop/workspace/daily/1113/data",
  ...
}

Q: 如何恢复到迁移前的状态?

# 1. 复制共享数据回项目内
cp -r ../data ./data

# 2. 修改配置
# config/accounts.json:
{
  "data_root": "data",
  ...
}

# 3. 验证
python script/data_processing/path_config.py

推荐的项目清理流程

迁移完成后,可以清理不再需要的旧项目:

# 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),只需:

# 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/