合并代码
This commit is contained in:
@@ -38,7 +38,7 @@ class DailyDataService(BaseService[DailyData]):
|
|||||||
批量创建记录,支持两种输入格式:
|
批量创建记录,支持两种输入格式:
|
||||||
- List[DailyData]:模型实例列表
|
- List[DailyData]:模型实例列表
|
||||||
- List[dict]:字典列表(自动转换为实例)
|
- List[dict]:字典列表(自动转换为实例)
|
||||||
通过 (account_id, NYID) 联合判断是否已存在,存在则忽略
|
通过 (account_id, NYID) 联合判断是否已存在,存在则忽略 --(暂时取消查重)
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
data_list = self._ensure_instances(data)
|
data_list = self._ensure_instances(data)
|
||||||
@@ -56,23 +56,26 @@ class DailyDataService(BaseService[DailyData]):
|
|||||||
logger.warning("批量创建失败:所有记录缺少 account_id 或 NYID")
|
logger.warning("批量创建失败:所有记录缺少 account_id 或 NYID")
|
||||||
return []
|
return []
|
||||||
|
|
||||||
existing_pairs: Set[Tuple[int, int]] = {
|
|
||||||
(item.account_id, item.NYID)
|
# 取消查重处理
|
||||||
for item in db.query(DailyData.account_id, DailyData.NYID)
|
# existing_pairs: Set[Tuple[int, int]] = {
|
||||||
.filter(DailyData.account_id.in_([p[0] for p in target_pairs]),
|
# (item.account_id, item.NYID)
|
||||||
DailyData.NYID.in_([p[1] for p in target_pairs]))
|
# for item in db.query(DailyData.account_id, DailyData.NYID)
|
||||||
.all()
|
# .filter(DailyData.account_id.in_([p[0] for p in target_pairs]),
|
||||||
}
|
# DailyData.NYID.in_([p[1] for p in target_pairs]))
|
||||||
|
# .all()
|
||||||
|
# }
|
||||||
|
|
||||||
to_create = [
|
to_create = [
|
||||||
item for item in data_list
|
item for item in data_list
|
||||||
if (item.account_id, item.NYID) not in existing_pairs
|
# if (item.account_id, item.NYID) not in existing_pairs
|
||||||
]
|
]
|
||||||
|
|
||||||
ignored_count = len(data_list) - len(to_create)
|
# ignored_count = len(data_list) - len(to_create)
|
||||||
if ignored_count > 0:
|
# if ignored_count > 0:
|
||||||
logger.info(f"批量创建时忽略{ignored_count}条已存在记录(account_id和NYID已存在)")
|
# logger.info(f"批量创建时忽略{ignored_count}条已存在记录(account_id和NYID已存在)")
|
||||||
|
|
||||||
|
logger.info(f"批量创建 {to_create}")
|
||||||
if not to_create:
|
if not to_create:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|||||||
36
fix_mysql.sh
Normal file
36
fix_mysql.sh
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "=== 修复 MySQL 监听配置 ==="
|
||||||
|
|
||||||
|
# 1. 备份配置文件
|
||||||
|
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.backup.$(date +%Y%m%d_%H%M%S)
|
||||||
|
echo "✅ 已备份配置文件"
|
||||||
|
|
||||||
|
# 2. 修改 bind-address
|
||||||
|
sudo sed -i 's/^bind-address.*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf
|
||||||
|
echo "✅ 已修改 bind-address"
|
||||||
|
|
||||||
|
# 3. 显示修改后的配置
|
||||||
|
echo ""
|
||||||
|
echo "修改后的配置:"
|
||||||
|
sudo grep "bind-address" /etc/mysql/mysql.conf.d/mysqld.cnf
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 4. 重启 MySQL
|
||||||
|
echo "正在重启 MySQL..."
|
||||||
|
sudo systemctl restart mysql
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# 5. 验证
|
||||||
|
echo ""
|
||||||
|
echo "验证 MySQL 监听状态:"
|
||||||
|
sudo netstat -tlnp | grep 3306
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 6. 测试连接
|
||||||
|
DOCKER0_IP=$(ip addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||||
|
echo "测试从本机连接 MySQL (IP: $DOCKER0_IP):"
|
||||||
|
mysql -h $DOCKER0_IP -u railway -p'Railway01.' -e "SELECT 'Connection OK' as status, DATABASE() as current_db, VERSION() as version;" 2>&1
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== 修复完成 ==="
|
||||||
27
test_connection.sh
Normal file
27
test_connection.sh
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "=== Docker 网络诊断 ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "1. Docker0 网桥 IP:"
|
||||||
|
ip addr show docker0 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || echo "❌ docker0 不存在"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "2. MySQL 监听状态:"
|
||||||
|
sudo netstat -tlnp | grep 3306 || echo "❌ MySQL 未运行或未监听 3306"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "3. MySQL 用户权限:"
|
||||||
|
mysql -u root -p -e "SELECT user, host FROM mysql.user WHERE user='railway';" 2>/dev/null || echo "❌ 无法查询(需要 root 密码)"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "4. 测试从容器连接 MySQL:"
|
||||||
|
DOCKER0_IP=$(ip addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||||
|
if [ ! -z "$DOCKER0_IP" ]; then
|
||||||
|
docker run --rm mysql:8.0 mysql -h $DOCKER0_IP -u railway -p'Railway01.' -e "SELECT 'OK' as status;" 2>&1
|
||||||
|
else
|
||||||
|
echo "❌ 无法获取 docker0 IP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== 诊断完成 ==="
|
||||||
Reference in New Issue
Block a user