From d81b2d1facd19ed4f2804076e9f8f2ad33155a40 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Sun, 24 May 2026 14:30:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(seed.yml):=20=E4=B8=A4=E6=AD=A5=E8=B5=B0?= =?UTF-8?q?=E9=81=BF=E5=85=8D=20S001=20=E5=9B=A0=20id=20=E5=86=B2=E7=AA=81?= =?UTF-8?q?=E8=A2=AB=E8=B7=B3=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 清空和写入分两个独立循环:先清空所有门店,再依次写入。 避免 S001(硬编码 id=1) 在 S002 尚未清除时被 INSERT IGNORE 跳过。 Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/seed.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/seed.yml b/.gitea/workflows/seed.yml index 5d8d423..e6a2f09 100644 --- a/.gitea/workflows/seed.yml +++ b/.gitea/workflows/seed.yml @@ -33,6 +33,21 @@ jobs: SHOPS: ${{ github.event.inputs.shops }} CLEAR: ${{ github.event.inputs.clear }} run: | + # 第一步:若需要清空,先把所有门店都清掉再写入 + # 避免 S001(id=1 硬编码) 因 S002 占用 id=1 而被 INSERT IGNORE 跳过 + if [ "$CLEAR" = "true" ]; then + echo "=== 清空阶段 ===" + for SHOP in $(echo "$SHOPS" | tr ',' ' '); do + echo " 清空 ${SHOP}..." + printf "SET @shop_code='%s';\n" "$SHOP" | cat - backend/seeds/clear_shop.sql | \ + ssh -i ~/.ssh/ec2_deploy.pem ${EC2_USER}@${EC2_HOST} \ + "docker exec -i jiu_mysql mysql -uroot -p${DB_PASSWORD} --default-character-set=utf8mb4 jiu_db" + done + echo "✓ 清空完成" + fi + + # 第二步:依次写入所有门店 + echo "=== 写入阶段 ===" for SHOP in $(echo "$SHOPS" | tr ',' ' '); do FILE="backend/seeds/${SHOP}.sql" if [ ! -f "$FILE" ]; then @@ -40,12 +55,6 @@ jobs: continue fi echo "→ Seeding $SHOP ..." - if [ "$CLEAR" = "true" ]; then - echo " 清空 ${SHOP} 数据..." - printf "SET @shop_code='%s';\n" "$SHOP" | cat - backend/seeds/clear_shop.sql | \ - ssh -i ~/.ssh/ec2_deploy.pem ${EC2_USER}@${EC2_HOST} \ - "docker exec -i jiu_mysql mysql -uroot -p${DB_PASSWORD} --default-character-set=utf8mb4 jiu_db" - fi ssh -i ~/.ssh/ec2_deploy.pem ${EC2_USER}@${EC2_HOST} \ "docker exec -i jiu_mysql mysql -uroot -p${DB_PASSWORD} --default-character-set=utf8mb4 jiu_db" \ < "$FILE"