← Cloudflare D1 / d1 / configuration
Окружения
Окружения это разные контексты, в которых выполняется ваш код. 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_databases, гдеd1_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"
}
]
}
}
}