66 lines
2.2 KiB
Python
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() |