跳转到内容
搜索文档

环境

最后更新 查看 MarkdownAgent 设置

环境(Environments)是代码运行的不同上下文。Cloudflare Developer Platform 允许您创建和管理不同环境。通过环境,您可以将同一项目部署到多个位置并使用多个名称。

要为不同环境指定不同的 D1 数据库,请在 Wrangler 文件中使用以下语法:

{
	"env": {
		// This is a staging environment
		"staging": {
			"d1_databases": [
				{
					"binding": "<BINDING_NAME_1>",
					"database_name": "<DATABASE_NAME_1>",
					"database_id": "<UUID1>"
				}
			]
		},
		// This is a production environment
		"production": {
			"d1_databases": [
				{
					"binding": "<BINDING_NAME_2>",
					"database_name": "<DATABASE_NAME_2>",
					"database_id": "<UUID2>"
				}
			]
		}
	}
}
[[env.staging.d1_databases]]
binding = "<BINDING_NAME_1>"
database_name = "<DATABASE_NAME_1>"
database_id = "<UUID1>"

[[env.production.d1_databases]]
binding = "<BINDING_NAME_2>"
database_name = "<DATABASE_NAME_2>"
database_id = "<UUID2>"

在上面的代码中,staging 环境使用的数据库(DATABASE_NAME_1)与 production 环境(DATABASE_NAME_2)不同。

Wrangler 文件结构

如果您需要为不同环境指定不同的 D1 数据库,您的 Wrangler 配置文件 中的绑定可能如下所示:

{
	"production": {
		"d1_databases": [
			{
				"binding": "DB",
				"database_name": "DATABASE_NAME",
				"database_id": "DATABASE_ID"
			}
		]
	}
}
[[production.d1_databases]]
binding = "DB"
database_name = "DATABASE_NAME"
database_id = "DATABASE_ID"

在上述配置中:

  • [[production.d1_databases]] 创建一个 production 对象,其中包含属性 d1_databasesd1_databases 是一个对象数组,因为您可以创建多个 D1 绑定(如果您有多个数据库)。
  • 下方形如 <key> = <value> 的每一行都是 d1_databases 数组中某个对象的属性。

因此,上述绑定等价于:

{
  "production": {
    "d1_databases": [
      {
        "binding": "DB",
        "database_name": "DATABASE_NAME",
        "database_id": "DATABASE_ID"
      }
    ]
  }
}

示例

{
	"env": {
		"staging": {
			"d1_databases": [
				{
					"binding": "BINDING_NAME_1",
					"database_name": "DATABASE_NAME_1",
					"database_id": "UUID_1"
				}
			]
		},
		"production": {
			"d1_databases": [
				{
					"binding": "BINDING_NAME_2",
					"database_name": "DATABASE_NAME_2",
					"database_id": "UUID_2"
				}
			]
		}
	}
}
[[env.staging.d1_databases]]
binding = "BINDING_NAME_1"
database_name = "DATABASE_NAME_1"
database_id = "UUID_1"

[[env.production.d1_databases]]
binding = "BINDING_NAME_2"
database_name = "DATABASE_NAME_2"
database_id = "UUID_2"

上述配置等价于以下 JSON 结构:

{
  "env": {
    "production": {
      "d1_databases": [
        {
          "binding": "BINDING_NAME_2",
          "database_id": "UUID_2",
          "database_name": "DATABASE_NAME_2"
        }
      ]
    },
    "staging": {
      "d1_databases": [
        {
          "binding": "BINDING_NAME_1",
          "database_id": "UUID_1",
          "database_name": "DATABASE_NAME_1"
        }
      ]
    }
  }
}

这篇文档对您有帮助吗?