""" 直接运行 seed 并检查结果 """ import paramiko, time, base64 NAS_HOST = "100.85.152.112" NAS_PORT = 22 NAS_USER = "simon" NAS_PASS = "Nas82829330" NAS_DEPLOY_PATH = "/volume1/docker/gaokao-portal" DOCKER = f"echo '{NAS_PASS}' | sudo -S /usr/local/bin/docker" c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect(NAS_HOST, NAS_PORT, NAS_USER, NAS_PASS, timeout=20) def run(cmd, desc="", timeout=30): if desc: print(f"[{desc}]") stdin, stdout, stderr = c.exec_command(cmd, timeout=timeout) time.sleep(1) ch = stdout.channel out = b"" while not ch.exit_status_ready(): if ch.recv_ready(): out += ch.recv(4096) time.sleep(0.2) while ch.recv_ready(): out += ch.recv(4096) return out.decode().strip() # 1. 先删除数据库 db_path = f"{NAS_DEPLOY_PATH}/backend/data/gaokao.db" run(f"rm -f {db_path}", "删除旧数据库") # 2. 直接调用 seed_data.py(手动触发) result = run(f"cd {NAS_DEPLOY_PATH}/backend && python3 seed_data.py", "运行 seed", timeout=30) print(f"\nseed 输出:\n{result}") # 3. 检查数据库 result = run(f"sqlite3 {db_path} 'SELECT id, title, length(questions) as qlen FROM questionnaires;'", "问卷列表") print(f"\n数据库内容:\n{result}") # 4. 检查 API result = run("curl -s http://localhost:8080/api/questionnaires", "问卷API", timeout=15) print(f"\nAPI 返回:\n{result[:500]}") c.close()