59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""添加 test_work_order 表的 del_flag 字段"""
|
||
|
|
|
||
|
|
import asyncio
|
||
|
|
from sqlalchemy.ext.asyncio import create_async_engine
|
||
|
|
from sqlalchemy import text
|
||
|
|
|
||
|
|
DB_CONFIG = {
|
||
|
|
'host': '123.57.81.127',
|
||
|
|
'port': 3306,
|
||
|
|
'user': 'cpy_admin',
|
||
|
|
'password': 'Tgzz2025+',
|
||
|
|
'database': 'ruoyi-fastapi'
|
||
|
|
}
|
||
|
|
|
||
|
|
DATABASE_URL = (
|
||
|
|
f"mysql+asyncmy://{DB_CONFIG['user']}:{DB_CONFIG['password']}@"
|
||
|
|
f"{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['database']}"
|
||
|
|
)
|
||
|
|
|
||
|
|
async def add_field():
|
||
|
|
engine = create_async_engine(DATABASE_URL, echo=False)
|
||
|
|
|
||
|
|
async with engine.connect() as conn:
|
||
|
|
print("=" * 80)
|
||
|
|
print("Adding del_flag to test_work_order")
|
||
|
|
print("=" * 80)
|
||
|
|
|
||
|
|
# 检查字段是否存在
|
||
|
|
result = await conn.execute(text("DESCRIBE test_work_order"))
|
||
|
|
columns = result.fetchall()
|
||
|
|
column_names = [col[0] for col in columns]
|
||
|
|
|
||
|
|
if 'del_flag' not in column_names:
|
||
|
|
print("\n[1] Adding del_flag column...")
|
||
|
|
await conn.execute(text("""
|
||
|
|
ALTER TABLE test_work_order
|
||
|
|
ADD COLUMN del_flag VARCHAR(1) DEFAULT '0' COMMENT '删除标志: 0=正常, 1=已删除'
|
||
|
|
"""))
|
||
|
|
await conn.commit()
|
||
|
|
print(" [OK] del_flag added")
|
||
|
|
else:
|
||
|
|
print("\n[1] del_flag already exists")
|
||
|
|
|
||
|
|
# 验证
|
||
|
|
print("\n[2] Verification:")
|
||
|
|
result = await conn.execute(text("DESCRIBE test_work_order"))
|
||
|
|
columns = result.fetchall()
|
||
|
|
for col in columns:
|
||
|
|
if col[0] == 'del_flag':
|
||
|
|
print(f" {col[0]:<20} | {col[1]:<30} | {col[2]}")
|
||
|
|
|
||
|
|
print("\n" + "=" * 80)
|
||
|
|
|
||
|
|
await engine.dispose()
|
||
|
|
|
||
|
|
if __name__ == '__main__':
|
||
|
|
asyncio.run(add_field())
|