#!/usr/bin/env python3 """ 빠른 데이터베이스 수정 - 외래키 제약조건만 제거 """ import sqlite3 import os from datetime import datetime def quick_fix(): """빠르게 외래키 제약조건만 비활성화""" db_path = '/srv/headscale-setup/data/db.sqlite' print("🔧 빠른 수정: 외래키 제약조건 비활성화") print("=" * 50) # Docker 컨테이너 중지 print("⏹️ Headscale 컨테이너 중지 중...") os.system("cd /srv/headscale-setup && docker-compose stop headscale") # 데이터베이스 연결 conn = sqlite3.connect(db_path) cursor = conn.cursor() try: # 외래키 제약조건 영구 비활성화 print("🔓 외래키 제약조건 비활성화...") cursor.execute("PRAGMA foreign_keys = OFF") # 설정 확인 cursor.execute("PRAGMA foreign_keys") fk_status = cursor.fetchone()[0] print(f"✅ 외래키 상태: {'비활성화' if fk_status == 0 else '활성화'}") # 테이블 확인 cursor.execute("SELECT name FROM sqlite_master WHERE type='table'") tables = cursor.fetchall() print(f"📋 테이블 목록: {[table[0] for table in tables]}") conn.commit() print("💾 설정 저장 완료") except Exception as e: print(f"❌ 오류: {e}") conn.rollback() finally: conn.close() # Docker 컨테이너 재시작 print("🚀 Headscale 컨테이너 재시작 중...") os.system("cd /srv/headscale-setup && docker-compose start headscale") print("✅ 완료! 이제 Tailscale 클라이언트 등록을 다시 시도해보세요.") if __name__ == '__main__': quick_fix()