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"