● 根据分析，promptsTemplates.py 的数据迁移确实是一个重要的中优先级改进。以下是详细的迁移方案和实施步骤：

  📊 当前问题分析

  promptsTemplates.py 的主要问题：

  1. 安全漏洞：包含硬编码数据库密码（腾讯云：!Rjb12191，本地：123456）
  2. 数据与代码混合：144KB 文件中约 4000 行是模板数据
  3. 不规范的数据库连接：使用 pymysql 直接连接，而不是项目的 SQLAlchemy ORM
  4. 冗余功能：既是数据存储又是初始化脚本

  ✅ 有利条件：

  - 应用已通过 PromptTemplate.query 从数据库获取模板
  - PromptTemplate 模型已在 models.py 中定义
  - 项目已有完整的数据库迁移系统 (migrations/ 目录)
  - 新的配置系统已就位

  🎯 迁移实施计划

  阶段一：数据提取和备份（30分钟）

  1. 提取模板数据到 JSON
  # 创建数据目录
  mkdir -p /d/aaa/aitsc/data

  # 手动或编写脚本提取 templates 列表到 JSON
  # 将生成：data/prompt_templates.json

  2. 备份现有数据库中的模板数据
  # 创建备份脚本
  from src.flask_prompt_master import create_app, db
  from src.flask_prompt_master.models.models import PromptTemplate
  import json

  app = create_app()
  with app.app_context():
      templates = PromptTemplate.query.all()
      data = [{
          'name': t.name,
          'description': t.description,
          'category': t.category,
          'industry': t.industry,
          'profession': t.profession,
          'sub_category': t.sub_category,
          'system_prompt': t.system_prompt,
          'is_default': t.is_default
      } for t in templates]

      with open('data/existing_templates_backup.json', 'w', encoding='utf-8') as f:
          json.dump(data, f, ensure_ascii=False, indent=2)

  阶段二：创建安全初始化系统（45分钟）

  1. 创建新的初始化脚本
  # scripts/init_prompt_templates.py
  import json
  import os
  from dotenv import load_dotenv
  from src.flask_prompt_master import create_app, db
  from src.flask_prompt_master.models.models import PromptTemplate

  load_dotenv()

  def init_from_json(json_file='data/prompt_templates.json'):
      """从JSON文件安全初始化模板数据"""
      app = create_app()
      with app.app_context():
          # 检查数据库连接
          if not db.session.bind:
              raise ValueError("数据库连接未初始化")

          # 加载模板数据
          with open(json_file, 'r', encoding='utf-8') as f:
              templates_data = json.load(f)

          added_count = 0
          skipped_count = 0

          for template_data in templates_data:
              # 检查是否已存在同名模板
              existing = PromptTemplate.query.filter_by(
                  name=template_data['name']
              ).first()

              if not existing:
                  template = PromptTemplate(**template_data)
                  db.session.add(template)
                  added_count += 1
              else:
                  skipped_count += 1

          try:
              db.session.commit()
              print(f"✅ 初始化完成：新增 {added_count} 条，跳过 {skipped_count} 条")
              return True
          except Exception as e:
              db.session.rollback()
              print(f"❌ 初始化失败：{e}")
              return False

  if __name__ == '__main__':
      init_from_json()

  2. 更新 promptsTemplates.py（保留向后兼容）
  # 在 promptsTemplates.py 顶部添加
  import warnings
  warnings.warn(
      "promptsTemplates.py 已弃用，请使用 scripts/init_prompt_templates.py",
      DeprecationWarning
  )

  # 修改 init_db 函数，移除硬编码密码，调用新的初始化脚本
  def init_db(database_type='local'):
      """向后兼容的初始化函数（重定向到新系统）"""
      print("⚠️  此函数已弃用，请使用新的初始化系统")
      print("💡 运行: python scripts/init_prompt_templates.py")
      # 或者直接调用新脚本
      from scripts.init_prompt_templates import init_from_json
      return init_from_json()

  阶段三：环境配置和安全加固（30分钟）

  1. 更新 .env.example 文件
  # 移除真实凭据，使用占位符
  DATABASE_URL=mysql+pymysql://username:password@host:port/database_name?charset=utf8mb4
  LLM_API_KEY=sk-your-api-key-here
  WX_SECRET=your-wx-secret-here

  2. 确保 .env 不被提交
  # 检查 .gitignore
  echo ".env" >> /d/aaa/aitsc/.gitignore
  echo ".env.*" >> /d/aaa/aitsc/.gitignore
  echo "!*.example" >> /d/aaa/aitsc/.gitignore

  3. 创建部署说明文档
  # 模板数据初始化说明

  ## 新系统使用
  4. 复制环境变量模板：`cp .env.example .env`
  5. 编辑 .env 文件，填入真实凭据
  6. 初始化模板数据：`python scripts/init_prompt_templates.py`

  ## 旧系统兼容
  旧命令 `python src/flask_prompt_master/promptsTemplates.py [local|tencent]`
  将自动重定向到新系统。

  阶段四：测试和验证（30分钟）

  7. 测试脚本
  # tests/test_template_init.py
  import pytest
  from scripts.init_prompt_templates import init_from_json
  from src.flask_prompt_master.models.models import PromptTemplate

  def test_template_count():
      """测试模板数量是否正确"""
      init_from_json('tests/test_templates.json')
      count = PromptTemplate.query.count()
      assert count > 0

  def test_no_duplicates():
      """测试不会创建重复模板"""
      init_from_json('tests/test_templates.json')
      count1 = PromptTemplate.query.count()
      init_from_json('tests/test_templates.json')  # 再次运行
      count2 = PromptTemplate.query.count()
      assert count1 == count2  # 数量应不变

  📅 实施时间表

  ┌──────┬────────────────┬──────────┬────────┐
  │ 阶段 │      任务      │ 预计时间 │ 优先级 │
  ├──────┼────────────────┼──────────┼────────┤
  │ 1    │ 数据提取和备份 │ 30分钟   │ 高     │
  ├──────┼────────────────┼──────────┼────────┤
  │ 2    │ 安全初始化脚本 │ 45分钟   │ 高     │
  ├──────┼────────────────┼──────────┼────────┤
  │ 3    │ 环境配置加固   │ 30分钟   │ 高     │
  ├──────┼────────────────┼──────────┼────────┤
  │ 4    │ 测试验证       │ 30分钟   │ 中     │
  ├──────┼────────────────┼──────────┼────────┤
  │ 5    │ 文档更新       │ 15分钟   │ 中     │
  ├──────┼────────────────┼──────────┼────────┤
  │ 总计 │                │ 2.5小时  │        │
  └──────┴────────────────┴──────────┴────────┘

  🔧 迁移后的架构

  aitsc/
  ├── data/                          # 数据文件目录
  │   ├── prompt_templates.json      # 模板数据（JSON格式）
  │   └── existing_templates_backup.json
  ├── scripts/                       # 管理脚本
  │   ├── init_prompt_templates.py   # 安全初始化脚本
  │   └── backup_templates.py
  ├── src/flask_prompt_master/
  │   └── promptsTemplates.py        # 已弃用（保留兼容）
  └── .env.example                   # 环境变量模板

  ⚠️ 风险和缓解措施

  风险: 生产数据库已有模板数据
    - 缓解: 初始化脚本检查重复，不会覆盖现有数据
  风险: 依赖旧初始化流程的脚本
    - 缓解: 保留 promptsTemplates.py 的兼容性包装
  风险: JSON 文件可能过大
    - 缓解: 可考虑分多个 JSON 文件或使用数据库种子

  📝 下一步建议

  立即行动:
  8. 先备份现有数据库中的模板数据
  9. 提取当前 promptsTemplates.py 中的模板到 JSON
  10. 创建安全初始化脚本

  验证后:
  11. 在测试环境运行新系统
  12. 更新部署文档
  13. 全面替换旧系统

  您希望我：
  14. 立即开始实施这个迁移方案？
  15. 先处理更高优先级的硬编码安全问题？
  16. 还是您有其他特定的要求？

  迁移完成后，项目的安全性、可维护性和部署便利性将显著提升。