lydgs commited on
Commit
849bf67
·
verified ·
1 Parent(s): 08d20e0

Update scripts/sync_bailian_models.py

Browse files
Files changed (1) hide show
  1. scripts/sync_bailian_models.py +17 -13
scripts/sync_bailian_models.py CHANGED
@@ -4,6 +4,7 @@ import sys
4
  import sqlite3
5
  import json
6
  import urllib.request
 
7
  from datetime import datetime
8
 
9
  DB_PATH = "/app/server/data/freeapi.db"
@@ -37,12 +38,10 @@ def ensure_provider_table(conn):
37
 
38
  def get_or_create_bailian_provider(conn, provider_table):
39
  cursor = conn.cursor()
40
- # 尝试查找已有百炼记录
41
  cursor.execute(f"SELECT id FROM {provider_table} WHERE base_url LIKE '%dashscope.aliyuncs.com%' LIMIT 1")
42
  row = cursor.fetchone()
43
  if row:
44
  return row[0]
45
- # 插入新记录
46
  cursor.execute(f"""
47
  INSERT INTO {provider_table} (name, base_url, api_key, created_at)
48
  VALUES (?, ?, ?, ?)
@@ -74,15 +73,10 @@ def main():
74
  provider_table = ensure_provider_table(conn)
75
  provider_id = get_or_create_bailian_provider(conn, provider_table)
76
 
77
- # 获取 models 表的列
78
  model_columns = get_table_columns(conn, "models")
79
  print(f"models table columns: {model_columns}")
80
 
81
- # 准备插入语句(根据实际列名动态构建)
82
- insert_cols = []
83
- for col in ['id', 'provider_id', 'enabled', 'created_at', 'name']:
84
- if col in model_columns:
85
- insert_cols.append(col)
86
  if not insert_cols:
87
  print("❌ models table missing expected columns")
88
  return 1
@@ -115,11 +109,21 @@ def main():
115
  conn.commit()
116
  conn.close()
117
  print(f"✅ Sync completed. New models added: {added}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  return 0
119
 
120
  if __name__ == "__main__":
121
- sys.exit(main())
122
- # 在 main() 函数最后,return 之前
123
- if added > 0:
124
- print("Triggering immediate backup to persist new models...")
125
- subprocess.run(["python3", "/app/scripts/backup_to_dataset.py"], check=False)
 
4
  import sqlite3
5
  import json
6
  import urllib.request
7
+ import subprocess # 新增:用于调用备份脚本
8
  from datetime import datetime
9
 
10
  DB_PATH = "/app/server/data/freeapi.db"
 
38
 
39
  def get_or_create_bailian_provider(conn, provider_table):
40
  cursor = conn.cursor()
 
41
  cursor.execute(f"SELECT id FROM {provider_table} WHERE base_url LIKE '%dashscope.aliyuncs.com%' LIMIT 1")
42
  row = cursor.fetchone()
43
  if row:
44
  return row[0]
 
45
  cursor.execute(f"""
46
  INSERT INTO {provider_table} (name, base_url, api_key, created_at)
47
  VALUES (?, ?, ?, ?)
 
73
  provider_table = ensure_provider_table(conn)
74
  provider_id = get_or_create_bailian_provider(conn, provider_table)
75
 
 
76
  model_columns = get_table_columns(conn, "models")
77
  print(f"models table columns: {model_columns}")
78
 
79
+ insert_cols = [col for col in ['id', 'provider_id', 'enabled', 'created_at', 'name'] if col in model_columns]
 
 
 
 
80
  if not insert_cols:
81
  print("❌ models table missing expected columns")
82
  return 1
 
109
  conn.commit()
110
  conn.close()
111
  print(f"✅ Sync completed. New models added: {added}")
112
+
113
+ # 如果有新增模型,立即触发一次备份,确保重启后不丢失
114
+ if added > 0:
115
+ print("Triggering immediate backup to persist new models...")
116
+ backup_script = "/app/scripts/backup_to_dataset.py"
117
+ if os.path.exists(backup_script):
118
+ result = subprocess.run(["python3", backup_script])
119
+ if result.returncode == 0:
120
+ print("Backup completed successfully.")
121
+ else:
122
+ print("Backup failed, but models were added.")
123
+ else:
124
+ print("Backup script not found, skipping immediate backup.")
125
+
126
  return 0
127
 
128
  if __name__ == "__main__":
129
+ sys.exit(main())