Files
aitsc/migrations/versions/add_wx_fields.py
2025-02-23 09:07:52 +08:00

66 lines
2.2 KiB
Python

from flask_migrate import Migrate
from flask_prompt_master import create_app, db
import pymysql
def upgrade_database():
"""添加微信相关字段并修改字段约束"""
try:
conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='food_db',
charset='utf8mb4'
)
cursor = conn.cursor()
# 修改现有字段约束
modify_statements = [
"ALTER TABLE user MODIFY mobile VARCHAR(20) NULL",
"ALTER TABLE user MODIFY email VARCHAR(100) NULL",
"ALTER TABLE user MODIFY avatar VARCHAR(64) NULL"
]
print("\n=== 修改字段约束 ===")
for statement in modify_statements:
try:
cursor.execute(statement)
print(f"执行成功: {statement}")
except Exception as e:
print(f"执行失败: {statement}")
print(f"错误: {str(e)}")
# 添加新字段
add_statements = [
"ALTER TABLE user ADD COLUMN IF NOT EXISTS openid VARCHAR(64) UNIQUE",
"ALTER TABLE user ADD COLUMN IF NOT EXISTS session_key VARCHAR(64)",
"ALTER TABLE user ADD COLUMN IF NOT EXISTS unionid VARCHAR(64) UNIQUE",
"ALTER TABLE user ADD COLUMN IF NOT EXISTS wx_nickname VARCHAR(100)",
"ALTER TABLE user ADD COLUMN IF NOT EXISTS wx_avatar VARCHAR(255)"
]
print("\n=== 添加新字段 ===")
for statement in add_statements:
try:
cursor.execute(statement)
print(f"执行成功: {statement}")
except Exception as e:
print(f"执行失败: {statement}")
print(f"错误: {str(e)}")
# 提交事务
conn.commit()
print("\n=== 数据库升级完成 ===")
except Exception as e:
print(f"数据库升级失败: {str(e)}")
if 'conn' in locals():
conn.rollback()
finally:
if 'cursor' in locals():
cursor.close()
if 'conn' in locals():
conn.close()
if __name__ == '__main__':
upgrade_database()