diff --git a/.gitea/workflows/seed.yml b/.gitea/workflows/seed.yml new file mode 100644 index 0000000..337da5e --- /dev/null +++ b/.gitea/workflows/seed.yml @@ -0,0 +1,46 @@ +name: Seed DB + +on: + workflow_dispatch: + inputs: + shops: + description: '要写入的门店(逗号分隔,如 S001,S002,S003)' + required: true + default: 'S001,S002,S003' + +jobs: + seed: + runs-on: mac + steps: + - uses: actions/checkout@v4 + + - name: Setup SSH + run: | + mkdir -p ~/.ssh + printf '%s' "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/ec2_deploy.pem + chmod 600 ~/.ssh/ec2_deploy.pem + ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts + + - name: Seed databases + env: + EC2_HOST: ${{ secrets.EC2_HOST }} + EC2_USER: ${{ secrets.EC2_USER }} + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + SHOPS: ${{ github.event.inputs.shops }} + run: | + for SHOP in $(echo "$SHOPS" | tr ',' ' '); do + FILE="backend/seeds/${SHOP}.sql" + if [ ! -f "$FILE" ]; then + echo "⚠️ $FILE not found, skipping" + continue + fi + echo "→ Seeding $SHOP ..." + ssh -i ~/.ssh/ec2_deploy.pem ${EC2_USER}@${EC2_HOST} \ + "docker exec -i jiu_mysql mysql -uroot -p${DB_PASSWORD} jiu_db" \ + < "$FILE" + echo "✓ $SHOP done" + done + + - name: Cleanup SSH key + if: always() + run: rm -f ~/.ssh/ec2_deploy.pem