"""
数据库更新脚本，用于简化静态资源相关表结构
此脚本将删除旧的列并适应新的模型结构
"""

import os
import django

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'footviz.settings')
django.setup()

from django.core.management.color import no_style
from django.db import connection

def reset_migrations():
    """重置迁移状态"""
    print("Resetting migration state...")
    
    # 删除现有的迁移记录
    with connection.cursor() as cursor:
        cursor.execute("DELETE FROM django_migrations WHERE app = 'api';")
    
    print("Migration state reset.")

def update_database_schema():
    """更新数据库表结构"""
    print("Updating database schema...")
    
    # 获取模型的SQL
    from django.core.management import execute_from_command_line
    import sys
    
    # 保存原始参数
    original_argv = sys.argv
    
    try:
        # 模拟makemigrations命令
        sys.argv = ['manage.py', 'makemigrations', 'api']
        execute_from_command_line(sys.argv)
        
        # 模拟migrate命令
        sys.argv = ['manage.py', 'migrate', 'api']
        execute_from_command_line(sys.argv)
        
    finally:
        # 恢复原始参数
        sys.argv = original_argv
    
    print("Database schema updated.")

def main():
    print("Updating database for simplified static resource management...")
    
    # 重置迁移状态
    reset_migrations()
    
    # 更新数据库结构
    update_database_schema()
    
    print("Database update completed!")

if __name__ == "__main__":
    main()