← Cloudflare D1 / d1 / configuration
Prostředí
Prostředí jsou různé kontexty, ve kterých váš kód běží. Cloudflare Developer Platform umožňuje vytvářet a spravovat různá prostředí. Díky prostředím můžete stejný projekt nasadit na více míst pod různými názvy.
Pro určení různých databází D1 pro různá prostředí použijte v souboru Wrangler následující syntaxi:
{
"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>"V kódu výše staging prostředí používá jinou databázi (DATABASE_NAME_1) než production prostředí (DATABASE_NAME_2).
Struktura souboru Wrangler
Pokud potřebujete pro různá prostředí zadat různé databáze D1, váš Konfigurační soubor Wrangler může obsahovat bindingy podobné následujícím:
{
"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"Ve výše uvedené konfiguraci:
[[production.d1_databases]]vytvoří objektproductions vlastnostíd1_databases, kded1_databasesje pole objektů, protože můžete vytvořit více bindingů D1, pokud máte více než jednu databázi.- Jakákoli vlastnost pod řádkem ve tvaru
<key> = <value>je vlastnost objektu v rámcid1_databasespole.
Výše uvedený binding je tedy ekvivalentní s:
{
"production": {
"d1_databases": [
{
"binding": "DB",
"database_name": "DATABASE_NAME",
"database_id": "DATABASE_ID"
}
]
}
}Příklad
{
"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"Výše uvedené odpovídá následující struktuře v 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"
}
]
}
}
}