Explorar el Código

chore: align MySQL and db scripts with aidopdev remote instance

- Update Application and Docker Database.json connection strings
- Sync CORS WithOrigins host with new server IP
- Point docs/db Python helpers and SQL init to aidopdev schema

Made-with: Cursor
skygu hace 1 semana
padre
commit
28c049c9b9

+ 2 - 2
ai-dop-platform/docs/db/V1__aidopcore_all_tables.sql

@@ -1,5 +1,5 @@
-create database if not exists aidopcore default character set utf8mb4 collate utf8mb4_general_ci;
-use aidopcore;
+create database if not exists aidopdev default character set utf8mb4 collate utf8mb4_general_ci;
+use aidopdev;
 
 
 drop table if exists ado_intg_system;
 drop table if exists ado_intg_system;
 create table ado_intg_system (
 create table ado_intg_system (

+ 1 - 1
ai-dop-platform/docs/db/V1__aidopcore_s1s3_kpi_init_data.sql

@@ -1,5 +1,5 @@
 -- S1-S3 + KPI 初始化测试数据
 -- S1-S3 + KPI 初始化测试数据
-use aidopcore;
+use aidopdev;
 
 
 -- 清理(仅测试数据范围)
 -- 清理(仅测试数据范围)
 delete from ado_s9_kpi_value_l3_day where tenant_id=1 and factory_id=1;
 delete from ado_s9_kpi_value_l3_day where tenant_id=1 and factory_id=1;

+ 1 - 1
ai-dop-platform/docs/db/_apply_init_data.py

@@ -2,7 +2,7 @@ import pymysql
 from pathlib import Path
 from pathlib import Path
 
 
 sql = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/V1__aidopcore_s1s3_kpi_init_data.sql").read_text(encoding='utf-8')
 sql = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/V1__aidopcore_s1s3_kpi_init_data.sql").read_text(encoding='utf-8')
-conn = pymysql.connect(host='106.14.73.46', port=3306, user='aidopremote', password='AidOp#Remote2026$Secure', database='aidopcore', charset='utf8mb4', autocommit=True)
+conn = pymysql.connect(host='123.60.180.165', port=3306, user='aidopremote', password='1234567890aiDOP#', database='aidopdev', charset='utf8mb4', autocommit=True)
 try:
 try:
     with conn.cursor() as cur:
     with conn.cursor() as cur:
         for st in [s.strip() for s in sql.split(';') if s.strip()]:
         for st in [s.strip() for s in sql.split(';') if s.strip()]:

+ 4 - 4
ai-dop-platform/docs/db/_apply_remote_sql.py

@@ -5,10 +5,10 @@ sql_path = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/V1__aido
 sql = sql_path.read_text(encoding='utf-8').replace('\n  ,key ', '\n  key ')
 sql = sql_path.read_text(encoding='utf-8').replace('\n  ,key ', '\n  key ')
 
 
 conn = pymysql.connect(
 conn = pymysql.connect(
-    host='106.14.73.46',
+    host='123.60.180.165',
     port=3306,
     port=3306,
     user='aidopremote',
     user='aidopremote',
-    password='AidOp#Remote2026$Secure',
+    password='1234567890aiDOP#',
     charset='utf8mb4',
     charset='utf8mb4',
     autocommit=True,
     autocommit=True,
 )
 )
@@ -20,9 +20,9 @@ try:
         for st in statements:
         for st in statements:
             cur.execute(st)
             cur.execute(st)
             ok += 1
             ok += 1
-        cur.execute("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='aidopcore'")
+        cur.execute("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='aidopdev'")
         table_count = cur.fetchone()[0]
         table_count = cur.fetchone()[0]
         print(f"Applied statements: {ok}")
         print(f"Applied statements: {ok}")
-        print(f"aidopcore tables: {table_count}")
+        print(f"aidopdev tables: {table_count}")
 finally:
 finally:
     conn.close()
     conn.close()

+ 4 - 4
ai-dop-platform/docs/db/_diff_tables.py

@@ -18,10 +18,10 @@ planned = {
 'ado_mobile_kpi_snapshot','ado_mobile_sync_cursor','ado_mobile_alert_ack','ado_mobile_incident_action'
 'ado_mobile_kpi_snapshot','ado_mobile_sync_cursor','ado_mobile_alert_ack','ado_mobile_incident_action'
 }
 }
 
 
-conn = pymysql.connect(host='106.14.73.46', port=3306, user='aidopremote', password='AidOp#Remote2026$Secure', charset='utf8mb4', autocommit=True)
+conn = pymysql.connect(host='123.60.180.165', port=3306, user='aidopremote', password='1234567890aiDOP#', charset='utf8mb4', autocommit=True)
 try:
 try:
     with conn.cursor() as cur:
     with conn.cursor() as cur:
-        cur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='aidopcore' AND table_name LIKE 'ado\\_%'")
+        cur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='aidopdev' AND table_name LIKE 'ado\\_%'")
         existing = {r[0] for r in cur.fetchall()}
         existing = {r[0] for r in cur.fetchall()}
 finally:
 finally:
     conn.close()
     conn.close()
@@ -30,9 +30,9 @@ extra = sorted(existing - planned)
 missing = sorted(planned - existing)
 missing = sorted(planned - existing)
 matched = sorted(existing & planned)
 matched = sorted(existing & planned)
 
 
-out = Path(r'd:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/aidopcore_新增与历史表差异清单.md')
+out = Path(r'd:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/aidopdev_新增与历史表差异清单.md')
 with out.open('w', encoding='utf-8') as f:
 with out.open('w', encoding='utf-8') as f:
-    f.write('# aidopcore 新增与历史表差异清单\n\n')
+    f.write('# aidopdev 新增与历史表差异清单\n\n')
     f.write(f'- 方案目标表数: {len(planned)}\n')
     f.write(f'- 方案目标表数: {len(planned)}\n')
     f.write(f'- 远端 ado_* 实际表数: {len(existing)}\n')
     f.write(f'- 远端 ado_* 实际表数: {len(existing)}\n')
     f.write(f'- 命中方案表数: {len(matched)}\n')
     f.write(f'- 命中方案表数: {len(matched)}\n')

+ 4 - 4
ai-dop-platform/docs/db/_export_remote_dict.py

@@ -2,14 +2,14 @@ import pymysql
 from pathlib import Path
 from pathlib import Path
 from openpyxl import Workbook
 from openpyxl import Workbook
 
 
-out = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/aidopcore_远端落库表字段说明.xlsx")
-conn = pymysql.connect(host='106.14.73.46', port=3306, user='aidopremote', password='AidOp#Remote2026$Secure', charset='utf8mb4', autocommit=True)
+out = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db/aidopdev_远端落库表字段说明.xlsx")
+conn = pymysql.connect(host='123.60.180.165', port=3306, user='aidopremote', password='1234567890aiDOP#', charset='utf8mb4', autocommit=True)
 try:
 try:
     with conn.cursor() as cur:
     with conn.cursor() as cur:
         cur.execute("""
         cur.execute("""
             SELECT table_name, table_comment
             SELECT table_name, table_comment
             FROM information_schema.tables
             FROM information_schema.tables
-            WHERE table_schema='aidopcore' AND table_name LIKE 'ado\\_%'
+            WHERE table_schema='aidopdev' AND table_name LIKE 'ado\\_%'
             ORDER BY table_name
             ORDER BY table_name
         """)
         """)
         tables = cur.fetchall()
         tables = cur.fetchall()
@@ -27,7 +27,7 @@ try:
             cur.execute("""
             cur.execute("""
                 SELECT ordinal_position, column_name, column_type, is_nullable, column_default, column_comment
                 SELECT ordinal_position, column_name, column_type, is_nullable, column_default, column_comment
                 FROM information_schema.columns
                 FROM information_schema.columns
-                WHERE table_schema='aidopcore' AND table_name=%s
+                WHERE table_schema='aidopdev' AND table_name=%s
                 ORDER BY ordinal_position
                 ORDER BY ordinal_position
             """, (t,))
             """, (t,))
             cols = cur.fetchall()
             cols = cur.fetchall()

+ 5 - 5
ai-dop-platform/docs/db/_gen_aidop_sql_excel.py

@@ -1,4 +1,4 @@
-from pathlib import Path
+from pathlib import Path
 from openpyxl import Workbook
 from openpyxl import Workbook
 
 
 out_dir = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db")
 out_dir = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db")
@@ -26,10 +26,10 @@ base_cols = [
 ("status","varchar(32)","是","","状态"),("biz_date","date","是","","业务日期"),("create_time","datetime(3)","否","current_timestamp(3)","创建时间"),("update_time","datetime(3)","是","","更新时间"),("is_deleted","tinyint","否","0","删除标识"),("is_active","tinyint","否","1","有效标识"),
 ("status","varchar(32)","是","","状态"),("biz_date","date","是","","业务日期"),("create_time","datetime(3)","否","current_timestamp(3)","创建时间"),("update_time","datetime(3)","是","","更新时间"),("is_deleted","tinyint","否","0","删除标识"),("is_active","tinyint","否","1","有效标识"),
 ]
 ]
 
 
-sql_path = out_dir / "V1__aidopcore_all_tables.sql"
+sql_path = out_dir / "V1__aidopdev_all_tables.sql"
 with sql_path.open("w", encoding="utf-8") as f:
 with sql_path.open("w", encoding="utf-8") as f:
-    f.write("create database if not exists aidopcore default character set utf8mb4 collate utf8mb4_general_ci;\n")
-    f.write("use aidopcore;\n\n")
+    f.write("create database if not exists aidopdev default character set utf8mb4 collate utf8mb4_general_ci;\n")
+    f.write("use aidopdev;\n\n")
     for t, desc in tables:
     for t, desc in tables:
         f.write(f"drop table if exists {t};\n")
         f.write(f"drop table if exists {t};\n")
         f.write(f"create table {t} (\n")
         f.write(f"create table {t} (\n")
@@ -46,7 +46,7 @@ with sql_path.open("w", encoding="utf-8") as f:
         f.write(",\n".join(lines))
         f.write(",\n".join(lines))
         f.write(f"\n) engine=innodb comment='{desc}';\n\n")
         f.write(f"\n) engine=innodb comment='{desc}';\n\n")
 
 
-xlsx_path = out_dir / "aidopcore_表字段说明.xlsx"
+xlsx_path = out_dir / "aidopdev_表字段说明.xlsx"
 wb = Workbook()
 wb = Workbook()
 ws = wb.active
 ws = wb.active
 ws.title = "表清单"
 ws.title = "表清单"

+ 3 - 3
ai-dop-platform/docs/db/_gen_init_and_checklist.py

@@ -1,4 +1,4 @@
-from pathlib import Path
+from pathlib import Path
 from datetime import datetime
 from datetime import datetime
 
 
 out_dir = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db")
 out_dir = Path(r"d:/Projects/Ai-DOP/SourceCode/ai-dop-platform/docs/db")
@@ -7,7 +7,7 @@ out_dir.mkdir(parents=True, exist_ok=True)
 today = datetime.now().strftime('%Y-%m-%d')
 today = datetime.now().strftime('%Y-%m-%d')
 
 
 sql = f"""-- S1-S3 + KPI 初始化测试数据
 sql = f"""-- S1-S3 + KPI 初始化测试数据
-use aidopcore;
+use aidopdev;
 
 
 -- 清理(仅测试数据范围)
 -- 清理(仅测试数据范围)
 delete from ado_s9_kpi_value_l3_day where tenant_id=1 and factory_id=1;
 delete from ado_s9_kpi_value_l3_day where tenant_id=1 and factory_id=1;
@@ -142,7 +142,7 @@ checklist = """# S1-S3 + KPI 联调检查清单
 - [ ] Admin.NET 系统日志功能正常
 - [ ] Admin.NET 系统日志功能正常
 """
 """
 
 
-sql_path = out_dir / "V1__aidopcore_s1s3_kpi_init_data.sql"
+sql_path = out_dir / "V1__aidopdev_s1s3_kpi_init_data.sql"
 sql_path.write_text(sql, encoding="utf-8")
 sql_path.write_text(sql, encoding="utf-8")
 
 
 ck_path = out_dir / "S1-S3_KPI_联调检查清单.md"
 ck_path = out_dir / "S1-S3_KPI_联调检查清单.md"

+ 1 - 1
ai-dop-platform/docs/db/_migrate_and_seed_kanban.py

@@ -1,6 +1,6 @@
 import pymysql
 import pymysql
 
 
-conn = pymysql.connect(host='106.14.73.46', port=3306, user='aidopremote', password='AidOp#Remote2026$Secure', database='aidopcore', charset='utf8mb4', autocommit=True)
+conn = pymysql.connect(host='123.60.180.165', port=3306, user='aidopremote', password='1234567890aiDOP#', database='aidopdev', charset='utf8mb4', autocommit=True)
 
 
 def ensure_columns(cur, table, defs):
 def ensure_columns(cur, table, defs):
     cur.execute(f"SHOW COLUMNS FROM `{table}`")
     cur.execute(f"SHOW COLUMNS FROM `{table}`")

+ 1 - 1
ai-dop-platform/docs/db/_show_cols.py

@@ -1,5 +1,5 @@
 import pymysql
 import pymysql
-conn=pymysql.connect(host='106.14.73.46',port=3306,user='aidopremote',password='AidOp#Remote2026$Secure',database='aidopcore',charset='utf8mb4',autocommit=True)
+conn=pymysql.connect(host='123.60.180.165',port=3306,user='aidopremote',password='1234567890aiDOP#',database='aidopdev',charset='utf8mb4',autocommit=True)
 try:
 try:
   with conn.cursor() as cur:
   with conn.cursor() as cur:
     for t in ['ado_s9_kpi_value_l1_day','ado_s8_alert_record','ado_s1_sales_order']:
     for t in ['ado_s9_kpi_value_l1_day','ado_s8_alert_record','ado_s1_sales_order']:

+ 3 - 3
ai-dop-platform/docs/db/_verify_remote_tables.py

@@ -1,11 +1,11 @@
 import pymysql
 import pymysql
-conn = pymysql.connect(host='106.14.73.46', port=3306, user='aidopremote', password='AidOp#Remote2026$Secure', charset='utf8mb4', autocommit=True)
+conn = pymysql.connect(host='123.60.180.165', port=3306, user='aidopremote', password='1234567890aiDOP#', charset='utf8mb4', autocommit=True)
 try:
 try:
     with conn.cursor() as cur:
     with conn.cursor() as cur:
-        cur.execute("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='aidopcore' AND table_name LIKE 'ado\\_%'")
+        cur.execute("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='aidopdev' AND table_name LIKE 'ado\\_%'")
         c = cur.fetchone()[0]
         c = cur.fetchone()[0]
         print(f"ado_* table count: {c}")
         print(f"ado_* table count: {c}")
-        cur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='aidopcore' AND table_name LIKE 'ado\\_%' ORDER BY table_name")
+        cur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='aidopdev' AND table_name LIKE 'ado\\_%' ORDER BY table_name")
         rows = [r[0] for r in cur.fetchall()]
         rows = [r[0] for r in cur.fetchall()]
         for r in rows:
         for r in rows:
             print(r)
             print(r)

+ 1 - 1
ai-dop-platform/docs/db/aidopcore_新增与历史表差异清单.md

@@ -1,4 +1,4 @@
-# aidopcore 新增与历史表差异清单
+# aidopdev 新增与历史表差异清单
 
 
 - 方案目标表数: 67
 - 方案目标表数: 67
 - 远端 ado_* 实际表数: 70
 - 远端 ado_* 实际表数: 70

+ 2 - 2
docker/app/Configuration/Database.json

@@ -7,8 +7,8 @@
     "ConnectionConfigs": [
     "ConnectionConfigs": [
       {
       {
         //"ConfigId": "1300000000001", // 默认库标识-禁止修改
         //"ConfigId": "1300000000001", // 默认库标识-禁止修改
-        "DbType": "Sqlite", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom
-        "ConnectionString": "DataSource=./Admin.NET.db", // 库连接字符串
+        "DbType": "MySql", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom
+        "ConnectionString": "Server=123.60.180.165;Port=3306;Database=aidopdev;Uid=aidopremote;Pwd=1234567890aiDOP#;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;", // 库连接字符串
         "DbSettings": {
         "DbSettings": {
           "EnableInitDb": true, // 启用库初始化
           "EnableInitDb": true, // 启用库初始化
           "EnableDiffLog": false, // 启用库表差异日志
           "EnableDiffLog": false, // 启用库表差异日志

+ 1 - 1
server/Admin.NET.Application/Configuration/App.json

@@ -37,7 +37,7 @@
   },
   },
   "CorsAccessorSettings": {
   "CorsAccessorSettings": {
     //"PolicyName": "App.Cors.Policy", // 跨域策略名称
     //"PolicyName": "App.Cors.Policy", // 跨域策略名称
-    "WithOrigins": [ "http://localhost:8888", "http://127.0.0.1:8888", "http://106.14.73.46:8888" ], // 前端开发服来源(公网/本机)
+    "WithOrigins": [ "http://localhost:8888", "http://127.0.0.1:8888", "http://123.60.180.165:8888" ], // 前端开发服来源(公网/本机)
     "WithExposedHeaders": [ "Content-Disposition", "X-Pagination", "access-token", "x-access-token", "Access-Control-Expose-Headersx-access-token" ], // 如果前端不代理且是axios请求
     "WithExposedHeaders": [ "Content-Disposition", "X-Pagination", "access-token", "x-access-token", "Access-Control-Expose-Headersx-access-token" ], // 如果前端不代理且是axios请求
     "SignalRSupport": true // 启用 SignalR 跨域支持
     "SignalRSupport": true // 启用 SignalR 跨域支持
   },
   },

+ 1 - 1
server/Admin.NET.Application/Configuration/Database.json

@@ -10,7 +10,7 @@
         //"ConfigId": "1300000000001", // 默认库标识-禁止修改
         //"ConfigId": "1300000000001", // 默认库标识-禁止修改
         "DbType": "MySql",
         "DbType": "MySql",
         "DbNickName": "系统库",
         "DbNickName": "系统库",
-        "ConnectionString": "Server=106.14.73.46;Port=3306;Database=aidopcore;Uid=aidopremote;Pwd=AidOp#Remote2026$Secure;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
+        "ConnectionString": "Server=123.60.180.165;Port=3306;Database=aidopdev;Uid=aidopremote;Pwd=1234567890aiDOP#;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
         // 本地 SQLite 示例(切回时改 DbType 为 Sqlite 并恢复下行连接串)
         // 本地 SQLite 示例(切回时改 DbType 为 Sqlite 并恢复下行连接串)
         //"DbType": "Sqlite",
         //"DbType": "Sqlite",
         //"ConnectionString": "DataSource=./Admin.NET.db",
         //"ConnectionString": "DataSource=./Admin.NET.db",