From 7d004ee973803b421f595e6127c2588368f2ab4a Mon Sep 17 00:00:00 2001 From: mtvpls Date: Wed, 11 Feb 2026 16:01:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9D=9Ed1=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cloudflare-deploy.yml | 23 ++++++++++++++++++++--- README.md | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cloudflare-deploy.yml b/.github/workflows/cloudflare-deploy.yml index c855243..66987b0 100644 --- a/.github/workflows/cloudflare-deploy.yml +++ b/.github/workflows/cloudflare-deploy.yml @@ -67,13 +67,23 @@ jobs: echo "INIT_CONFIG=${{ secrets.INIT_CONFIG }}" >> $GITHUB_ENV echo "CONFIG_SUBSCRIPTION_URL=${{ secrets.CONFIG_SUBSCRIPTION_URL }}" >> $GITHUB_ENV - - name: Replace D1 Database ID in wrangler.toml + - name: Configure D1 Database in wrangler.toml run: | - if [ -n "${{ secrets.D1_DATABASE_ID }}" ]; then + STORAGE_TYPE="${{ secrets.NEXT_PUBLIC_STORAGE_TYPE }}" + + if [ "$STORAGE_TYPE" != "d1" ]; then + echo "Storage type is not d1 (current: $STORAGE_TYPE), removing D1 database configuration" + # Remove the entire [[d1_databases]] section including the comment + sed -i '/^# D1 数据库绑定$/,/^database_id = .*$/d' wrangler.toml + # Also remove any remaining [[d1_databases]] block + sed -i '/^\[\[d1_databases\]\]$/,/^$/{ /^\[\[d1_databases\]\]$/d; /^binding = /d; /^database_name = /d; /^database_id = /d; }' wrangler.toml + echo "D1 configuration removed from wrangler.toml" + elif [ -n "${{ secrets.D1_DATABASE_ID }}" ]; then sed -i 's/REPLACE_WITH_YOUR_D1_DATABASE_ID/${{ secrets.D1_DATABASE_ID }}/g' wrangler.toml echo "D1 Database ID replaced successfully" else - echo "D1_DATABASE_ID secret not set, skipping replacement" + echo "⚠️ Storage type is d1 but D1_DATABASE_ID secret not set" + exit 1 fi - name: Update wrangler.toml with environment variables @@ -130,6 +140,13 @@ jobs: - name: Run D1 Database Migrations run: | + STORAGE_TYPE="${{ secrets.NEXT_PUBLIC_STORAGE_TYPE }}" + + if [ "$STORAGE_TYPE" != "d1" ]; then + echo "Storage type is not d1 (current: $STORAGE_TYPE), skipping D1 migrations" + exit 0 + fi + if [ -z "${{ secrets.D1_DATABASE_ID }}" ]; then echo "D1_DATABASE_ID not set, skipping migrations" exit 0 diff --git a/README.md b/README.md index 2d29123..caf9b76 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ Cloudflare Workers 提供免费的边缘计算服务,通过 GitHub Actions 可 - 点击 "Create Token",选择 "Edit Cloudflare Workers" 模板 - 或使用自定义 Token,需要以下权限: - Account - Cloudflare Workers Scripts - Edit - - Account - Cloudflare Workers KV Storage - Edit + - Account - D1 - Edit(仅在使用 D1 数据库时需要) - 创建后复制生成的 API Token - 在 Dashboard 首页右侧可以看到你的 Account ID