INTEGRITY Документация

Окружения

Окружения это разные контексты, в которых выполняется ваш код. 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": [
      {
        "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"
        }
      ]
    }
  }
}