run_migration.py 930 B

123456789101112131415161718192021222324252627282930313233343536
  1. import pymysql
  2. import yaml
  3. import os
  4. # 切换到脚本所在目录
  5. script_dir = os.path.dirname(os.path.abspath(__file__))
  6. os.chdir(script_dir)
  7. # 读取配置
  8. with open('config.yaml', 'r', encoding='utf-8') as f:
  9. config = yaml.safe_load(f)
  10. db_config = config['database']
  11. # 连接数据库
  12. connection = pymysql.connect(
  13. host=db_config['host'],
  14. port=db_config['port'],
  15. user=db_config['user'],
  16. password=db_config['password'],
  17. database=db_config['database']
  18. )
  19. try:
  20. with connection.cursor() as cursor:
  21. # 执行迁移
  22. sql = "ALTER TABLE tracking_record MODIFY user_id VARCHAR(50)"
  23. print(f"执行 SQL: {sql}")
  24. cursor.execute(sql)
  25. connection.commit()
  26. print("✓ 数据库迁移成功!tracking_record.user_id 字段已改为 VARCHAR(50)")
  27. except Exception as e:
  28. print(f"✗ 迁移失败: {e}")
  29. connection.rollback()
  30. finally:
  31. connection.close()