INTEGRITY Dokumentace

Poznámky k verzi

Přihlásit se k odběru RSS

2025-11-05

D1 umožňuje konfigurovat jurisdikce pro lokalizaci dat

Nyní můžete nastavit jurisdikce při vytváření databáze D1, abyste zajistili, kde vaše databáze běží a ukládá data.

2025-09-11

D1 automaticky opakuje dotazy pouze pro čtení

D1 nyní rozpoznává dotazy pouze pro čtení a v případě chyb, které lze opakováním odstranit, se je automaticky pokusí až dvakrát zopakovat. Počet pokusů o provedení najdete ve vráceném metadata odpovědi vlastnost total_attempts.

V současnosti se opakují pouze dotazy pro čtení, tedy dotazy obsahující výhradně následující klíčová slova SQLite: SELECT, EXPLAIN, WITH. Dotazy obsahující jakýkoli Klíčové slovo SQLite které vedou k zápisu do databáze, se neopakují.

Poměr úspěšných opakování mezi chybami pouze pro čtení, které lze opakovat, se pohybuje od 5 % až do 95 % v závislosti na dané chybě a délce jejího trvání (například síťové chyby nebo jiné interní chyby).

Poměr úspěšných opakování mezi všemi chybami, které lze opakovat, je nižší, což naznačuje, že existují zápisové dotazy, které by bylo možné opakovat. Proto uživatelům D1 doporučujeme nadále používat opakované pokusy ve vlastním kódu pro dotazy, které nejsou pouze pro čtení, ale jsou podle obchodní logiky aplikace idempotentní.

Poměr úspěšnosti automatických opakování dotazů D1

D1 zajišťuje, že žádný pokus o opakování nezpůsobí zápis do databáze, takže jsou automatická opakování bezpečná i před vedlejšími účinky, i kdyby detekcí dotazů pouze pro čtení proklouzl dotaz způsobující změny. D1 toho dosahuje kontrolou změn po každém provedení dotazu, a pokud při pokusu o opakování dojde k zápisu, dotaz se vrátí zpět.

Heuristika pro detekci dotazů pouze pro čtení je zatím jednoduchá a je zde prostor pro zlepšení, aby zachytila více případů dotazů, které lze opakovat, takže se jedná teprve o začátek.

2025-07-01

Maximální úložiště D1 na účet pro placený plán Workers je nyní 1 TB

Maximální úložiště D1 na účet pro uživatele s placeným plánem Workers bylo navýšeno z 250 GB na 1 TB.

2025-07-01

Přístup k zálohám databází D1 alpha byl odebrán

Po zrušení přístupu k dotazům do alfa databází D1 dne 2024-08-23, k záložním kopiím alfa databází D1 už nelze přistupovat ani je vytvářet pomocí wrangler d1 backup, dostupné od wrangler v3.

Pokud si chcete zálohu databáze D1 alpha ponechat, použijte wrangler d1 backup před 2025-07-01. D1 alfa zálohu lze použít k migrovat do nově vytvořené databáze D1 v obecně dostupném stavu.

2025-05-30

O 50 až 500 ms rychlejší požadavky D1 REST API

Uživatelé používající Cloudflare REST API k dotazování své databáze D1, mohou nyní pozorovat nižší celkovou latenci požadavků, protože ověřování D1 probíhá v nejbližším datovém centru sítě Cloudflare, které požadavek přijalo. Dříve musely požadavky na D1 REST API procházet přes centrální datová centra Cloudflare, což přidávalo síťové cesty tam a zpět a zvyšovalo latenci.

Zlepšení latence se pohybuje od 50-500 ms v závislosti na poloze požadavku a umístění databáze a platí pouze pro REST API. Požadavky REST API a databáze mimo Spojené státy z toho těží více, protože hlavní klíčová datová centra Cloudflare se nacházejí ve Spojených státech.

koncové body dotazů D1, jako je /query a /raw mají nejvýraznější zlepšení, protože už nepřistupují k hlavním datovým centrům Cloudflare. Endpointy řídicí roviny D1, jako jsou ty pro vytváření a mazání databází, vykazují menší zlepšení, protože pro další metadata řídicí roviny stále vyžadují přístup k hlavním datovým centrům Cloudflare.

2025-05-02

Oprava chyby v oprávněních D1 HTTP API

Chyba v oprávněních, která umožňovala účtu Cloudflare a uživateli API tokeny hodnotou D1:Read oprávnění a Edit oprávnění k jinému produktu Cloudflare potřebné k zápisu do databáze D1, byla opravena. D1:Edit oprávnění je vyžadováno pro jakýkoli zápis do databáze přes HTTP API.

Pokud jste používali existující token API bez D1:Edit oprávnění k provádění úprav databáze D1 přes HTTP API, budete muset vytvářet nebo upravovat API tokeny k výslovnému zahrnutí D1:Edit oprávnění.

2025-04-10

D1 Read Replication Public Beta

Replikace pro čtení D1 je dostupná ve veřejné beta verzi a pomáhá snížit průměrnou latenci a zvýšit celkovou propustnost u aplikací náročných na čtení, jako jsou e-commerce weby nebo nástroje pro správu obsahu.

Workers mohou využívat kopie databáze určené pouze pro čtení, nazývané repliky pro čtení, pomocí D1 Sessions API. Relace zapouzdřuje všechny dotazy z jedné logické relace vaší aplikace. Relace může například odpovídat všem dotazům přicházejícím z konkrétní relace webového prohlížeče. S rozhraním Sessions API mají dotazy D1 v rámci relace zaručeno, že budou sekvenčně konzistentní abyste se vyhnuli problémům s konzistencí dat. D1 bookmarky lze použít z předchozí relace k zajištění logické konzistence mezi relacemi.

// retrieve bookmark from previous session stored in HTTP header
const bookmark = request.headers.get("x-d1-bookmark") ?? "first-unconstrained";

const session = env.DB.withSession(bookmark);
const result = await session
  .prepare(`SELECT * FROM Customers WHERE CompanyName = 'Bs Beverages'`)
  .run();
// store bookmark for a future session
response.headers.set("x-d1-bookmark", session.getBookmark() ?? "");

Čtecí repliky vytváří Cloudflare automaticky (aktuálně jednu v každém podporovaném region D1) jsou aktivní nebo neaktivní podle provozu dotazů a Cloudflare k nim transparentně směruje bez dalších nákladů.

Chcete-li vyzkoušet replikaci pro čtení D1, nasaďte následující kód Workeru pomocí Sessions API, který vás vyzve k vytvoření databáze D1 a povolení replikace pro čtení na této databázi.

Deploy to Cloudflare

Více o tom, jak byla replikace pro čtení implementována, najdete v našem blogový příspěvek.

2025-02-19

D1 podporuje `PRAGMA optimize`

D1 nyní podporuje PRAGMA optimize příkaz, který může zlepšit výkon databázových dotazů. Doporučujeme tento příkaz spustit po každé změně schématu (například po vytvoření indexu). Další informace najdete v PRAGMA optimize s dalšími informacemi.

2025-02-04

Opravena chyba s přístupem D1 pouze pro čtení přes UI a REST API /query.

Opravena chyba v oprávněních D1, kvůli které mohli uživatelé s rolí pouze pro čtení v UI a uživatelé s API tokeny pouze pro čtení přes /query REST API ke spouštění dotazů, které měnily databáze. Akce v uživatelském rozhraní prostřednictvím Tables kartu, jako je vytváření a mazání tabulek, byly nesprávně povoleny i s přístupem pouze pro čtení. Akce v uživatelském rozhraní přes Console kartou nebyly touto chybou ovlivněny a správně vyžadovaly přístup pro zápis.

Zápisové dotazy s přístupem pouze pro čtení nyní selžou. Pokud jste se spoléhali na předchozí nesprávné chování, přiřaďte uživatelům správné role nebo API tokenům oprávnění k provádění zápisových dotazů D1.

2025-01-13

D1 začne vynucovat limity bezplatné vrstvy od 10. února 2025.

D1 začne vynucovat denní limity bezplatné úrovně od 2025-02-10. Tyto limity platí pouze pro účty na plánu Workers Free.

Od 2025-02-10 platí, že pokud nepodniknete žádné kroky a překročíte denní limity bezplatné úrovně, dotazy na databáze D1 přes Workers API nebo REST API budou vracet chyby, dokud se limity denně neresetují v 00:00 UTC.

Chcete-li zajistit nepřerušovaný provoz služby, upgradujte účet na plán Workers Paid z stránka s plány. Minimální měsíční fakturovaná částka je 5 USD. Více informací najdete v plán Workers Paid a limity D1.

Pro lepší přehled o aktuálním využití si prohlédněte fakturační metriky pro přečtené a zapsané řádky, které najdete na D1 dashboard nebo GraphQL API.

2025-01-07

Latence požadavků D1 Worker API se snižuje o 40-60%.

D1 zkrátilo latenci požadavků Worker API od začátku do konce o 40-60% tím, že eliminovalo zbytečné síťové zpáteční cesty pro každý požadavek.

Latence D1 Worker API

Latence požadavků p50, p90 a p95 agregovaná napříč celou službou D1. Tyto latence slouží jako orientační hodnota a neměly by být považovány za přesné zlepšení vaší zátěže.

U každého požadavku na databázi D1 se odstranily nejméně dvě síťové cesty tam a zpět. Jedna z nich byla způsobena chybou, která je nyní opravena. Zbývající odstraněné cesty tam a zpět souvisí s tím, že se pro každý požadavek na datacentrum hostující databázi už nevytváří nové TCP spojení.

Odstranění zbytečných síťových round tripů platí také pro D1 REST API. REST API však pro ověřování stále závisí na centralizovaných datacentrech Cloudflare, což snižuje relativní zlepšení výkonu.

2024-08-23

Databáze D1 alpha přestaly přijímat dotazy SQL

Podle upozornění na zastarání dne 2024-04-30 přestaly alfa databáze D1 přijímat dotazy (zálohy je stále možné vytvářet a stahovat).

Požadavky na alfa databáze D1 nyní vracejí chybu HTTP 400 s následujícím textem:

You can no longer query a D1 alpha database. Please follow https://developers.cloudflare.com/d1/platform/alpha-migration/ to migrate your alpha database and resume querying.

Na novou, obecně dostupnou verzi D1 můžete přejít podle průvodce alpha migracemi databáze.

2024-07-26

Opravena chyba v typech TypeScript pro API run()

run() metoda v rámci D1 Client API měl nesprávnou (zastaralou) definici typu, což bylo opraveno od @cloudflare/workers-types verze 4.20240725.0.

Správná definice typu je stmt.run<T>(): D1Result, jako run() vrací řádky s výsledkem dotazu. Dříve nesprávné definice typu byla stmt.run(): D1Response, který vrací pouze metadata dotazu, žádné výsledky.

2024-06-17

HTTP API nyní u přetížených databází D1 vrací chybu HTTP 429

Dříve platil pro D1 HTTP API vracel HTTP 500 Internal Server chybu pro dotazy, které přišly ve chvíli, kdy byla databáze D1 přetížená. Tyto požadavky nyní správně vrací HTTP 429 Too Many Requests chyba.

D1 Workers API je touto změnou neovlivněn.

2024-04-30

Databáze D1 alpha přestanou přijímat živé dotazy SQL dne August 15, 2024

Dříve zastaralá alpha databáze D1 je nutné do 15. srpna 2024 migrovat, aby mohly nadále přijímat nové dotazy.

Viz průvodce alpha migracemi databáze k migraci na novou, obecně dostupnou architekturu databáze.

2024-04-12

HTTP API nyní u neplatných dotazů vrací chybu HTTP 400

Dříve platil pro D1 HTTP API vracel HTTP 500 Internal Server chybu pro neplatný dotaz. Neplatný SQL dotaz nyní správně vrací HTTP 400 Bad Request chyba.

D1 Workers API je touto změnou neovlivněn.

2024-04-05

Databáze D1 alpha jsou zastaralé

Nyní, když je D1 obecně dostupná a připravená pro produkční nasazení, jsou alfa databáze D1 zastaralé a měly by být migrovány kvůli lepšímu výkonu, spolehlivosti a trvalé podpoře.

Viz průvodce alpha migracemi databáze k migraci na novou, obecně dostupnou architekturu databáze.

2024-04-01

D1 je obecně dostupné

D1 je nyní obecně dostupné a připravené pro produkční nasazení. Přečtěte si blogový příspěvek pro podrobnosti o nových funkcích ve stavu GA a další informace o připravovaném API pro čtecí repliky D1.

  • Vývojáři s plánem Workers Paid nyní mají limit 10 GB na databázi (dříve 2GB), který lze kombinovat se stávajícím limitem 50,000 databází na účet.
  • Vývojáři s plánem Workers Free si zachovávají limit 500 MB na databázi a mohou vytvořit až 10 databází na účet.
  • Databáze D1 lze exportováno jako soubor SQL.

2024-03-12

Změna výchozího chování `wrangler d1 execute`

Od [email protected], wrangler d1 execute a wrangler d1 migrations apply nyní ve výchozím nastavení používají místní databázi, aby odpovídalo výchozímu chování wrangler dev.

Nyní je také možné zadat jeden z --local nebo --remote abyste wrangleru výslovně sdělili, proti kterému prostředí chcete příkazy spouštět.

2024-03-05

Fakturace za využití D1

K 2024-03-05 se začne počítat využití D1, což může vést k poplatkům v budoucím fakturačním cyklu účtu.

Vývojáři s plánem Workers Paid, jejichž využití D1 přesahuje zahrnuté limity vám budou účtovány poplatky podle ceny D1.

Vývojáři s plánem Workers Free mohou využívat limity zahrnuté v plánu. Pro využití nad rámec níže uvedených limitů je nutné přejít na placený plán Workers Paid za $5/month.

Fakturovatelné metriky účtu jsou dostupné v Cloudflare Dashboard a GraphQL API.

2024-02-16

Změny API u `run()`

Předchozí změna (provedená 2024-02-13) v run() metoda dotazovacího příkazu byl vrácen zpět.

run() nyní vrací D1Result, včetně výsledných řádků, což odpovídá původnímu chování před změnou provedenou 2024-02-13.

Budoucí změna run() k vrácení D1ExecResult, jak bylo původně zamýšleno a zdokumentováno, bude podmíněno compatibility date aby nedošlo k narušení existujících Workers, které se spoléhají na způsob, jakým run() aktuálně funguje.

2024-02-13

Změny API u `raw()`, `all()` a `run()`

D1 raw(), all() a run() metody dotazovacího příkazu byly aktualizovány tak, aby odpovídaly zamýšlenému chování a zlepšily kompatibilitu s knihovnami ORM.

raw() nyní správně vrací výsledky jako pole polí, což umožňuje správně zpracovat duplicitní názvy sloupců (například při spojování tabulek), na rozdíl od all(), který zůstává beze změny a vrací pole objektů. Chcete-li do výsledků zahrnout pole názvů sloupců při použití raw(), použijte raw({columnNames: true}).

run() už chybně nevrací D1Result a místo toho vrátí D1ExecResult tak, jak bylo původně zamýšleno a zdokumentováno.

Toto může být zásadní změna pro některé aplikace, které očekávaly raw() k vrácení pole objektů.

Viz D1 Client API a podrobně si prohlédnete metody dotazování D1, návratové typy a podporu TypeScriptu.

2024-01-18

Podpora LIMIT pro příkazy UPDATE a DELETE

D1 nyní podporuje přidání LIMIT klauzuli k UPDATE a DELETE příkazy, což umožňuje omezit dopad potenciálně nebezpečné operace.

2023-12-18

Automatické zálohy staré alfa verze jsou vypnuté

Databáze používající starší alfa backend D1 již nebudou spouštět automatizované hodinové zálohy. I přesto můžete těchto databází pořizovat ruční zálohy.

Tým D1 doporučuje přejít na nové produkční backend, což bude vyžadovat export a import stávajících dat. Produkční backend D1 je rychlejší než původní alpha backend. Nový backend také podporuje Time Travel, což vám umožňuje obnovit databázi do libovolné minuty za posledních 30 dní bez nutnosti spoléhat na hodinové nebo ruční snímky.

2023-10-03

Vytvořte až 50,000 databází D1

Vývojáři používající D1 v rámci plánu Workers Paid mohou nyní vytvořit až 50,000 databází v rámci postupného navyšování limitů D1.

  • To dále umožňuje případy použití typu databáze na uživatele a izolaci dat mezi jednotlivými zákazníky.
  • Celkové úložiště na účet je nyní 50 GB.
  • D1 analytika a metriky poskytují data o využití pro jednotlivé databáze.

Pokud potřebujete vytvořit více než 50,000 databází nebo potřebujete více úložného prostoru na účet, obraťte se na nás týmu D1 k projednání.

2023-09-28

Veřejná beta D1 je tu

D1 je nyní ve veřejné beta verzi a limity úložiště byly navýšeny:

  • Vývojáři s plánem Workers Paid nyní mají limit 2 GB na databázi (dříve 500 MB) a mohou vytvořit až 25 databází na účet (dříve 10). Tyto limity se budou během veřejné beta verze i nadále automaticky zvyšovat.
  • Vývojáři s plánem Workers Free si zachovávají limit 500 MB na databázi a mohou vytvořit až 10 databází na účet.

Databáze musí používat D1 nový úložný subsystém abyste využili vyšší limity databáze.

Přečtěte si blog s oznámením pro podrobnosti o tom, co je nového v beta verzi a co se v D1 chystá do budoucna.

2023-08-19

Počet řádků se nyní vrací pro každý dotaz

D1 nyní vrací počet rows_written a rows_read pro každý provedený dotaz, což umožňuje posoudit náklady dotazu jak pro ceny a optimalizace indexů účely.

meta objekt vrácený v D1 Client API obsahuje celkový počet přečtených řádků (rows_read) a zapsané řádky (rows_written) tímto dotazem. Například dotaz, který provádí úplné procházení tabulky (například SELECT * FROM users) z tabulky s 5000 řádky by vrátil rows_read hodnotu 5000:

"meta": {
  "duration": 0.20472300052642825,
  "size_after": 45137920,
  "rows_read": 5000,
  "rows_written": 0
}

Viz dokumentace k cenám D1 a pochopíte, jak se měří čtení a zápisy. D1 zůstává během alfa období bezplatné.

2023-08-09

Navázání D1 z Cloudflare dashboardu

Nyní můžete navázat databázi D1 k vašim Workers přímo v Cloudflare dashboard. Chcete-li navázat D1 z dashboardu Cloudflare, vyberte svůj projekt Worker -> Nastavení -> Proměnné -> a vyberte D1 Database Bindings.

Poznámka: pokud jste již dříve nasadili Worker s databázovým bindingem D1 ve verzi wrangler před 3.5.0, musíte přejít na wrangler v3.5.0 nejprve, než budete moci upravovat vazby vaší databáze D1 v Cloudflare dashboardu. Nové projekty Workers toto omezení nemají.

Uživatelé, kteří používali starší alfa verzi D1 a dříve ke svému database bindingu ručně přidávali prefix pomocí __D1_BETA__ byste to měli v rámci tohoto upgradu odstranit. Vaše skripty Workeru by měly volat databázi D1 přes env.BINDING_NAME pouze. Více informací najdete v nejnovější úvodní příručka D1 pro osvědčené postupy.

Doporučujeme všem uživatelům alfa verze D1, aby začali používat wrangler 3.5.0 (nebo novější), abyste využili vylepšené typy TypeScript a budoucí vylepšení API D1.

2023-08-01

Limit na databázi nyní 500 MB

Databáze používající D1 nový úložný subsystém mohou nyní narůst až na 500 MB každý, oproti předchozímu limitu 100 MB. To platí jak pro stávající, tak pro nově vytvořené databáze.

Viz Limity a dozvíte se více o limitech D1.

2023-07-27

Nový výchozí úložný subsystém

Databáze vytvořené přes Cloudflare dashboard a Wrangler (od v3.4.0) nyní ve výchozím nastavení používají nový úložný subsystém D1. Nový backend dokáže být 6 - 20x rychlejší než původní alfa backend D1.

Pro zjištění, jaký úložný subsystém vaše databáze používá, spusťte wrangler d1 info YOUR_DATABASE a zkontrolujte pole version ve výstupu.

Databáze s version: beta používají nový úložný backend a podporují Time Travel API. Databáze s version: alpha používají pouze starší, zastaralý backend D1.

2023-07-27

Time Travel

Time Travel je nyní k dispozici. Time Travel umožňuje obnovit databázi D1 do libovolné minuty v posledních 30 dnech (plán Workers Paid) nebo 7 dnech (plán Workers Free), a to bez dodatečných nákladů za úložiště nebo obnovu.

Viz Time Travel dokumentaci a zjistěte, jak se vrátit zpět v čase.

Databáze používající D1 nový úložný subsystém mohou používat Time Travel. Time Travel nahrazuje zálohy založené na snímcích se používal pro starší alfa databáze.

2023-06-28

Metriky a analytika

Nyní si můžete zobrazit metriky pro jednotlivé databáze prostřednictvím obou Cloudflare dashboard a GraphQL Analytics API.

D1 aktuálně zpřístupňuje počet čtení a zápisů za sekundu, velikost odpovědi dotazu a percentily latence dotazů.

2023-06-16

Dokumentace ke generovaným sloupcům

Byla zveřejněna nová dokumentace o tom, jak využít podporu D1 pro generované sloupce k definici sloupců, které se dynamicky generují při zápisu (nebo čtení). Generované sloupce umožňují extrahovat data z Objekty JSON nebo použít výstup jiných funkcí SQL.

2023-06-12

Ukončení podpory Error.cause

Od wrangler v3.1.1 D1 Client API nyní vrací podrobné chybové zprávy v rámci nejvyšší úrovně Error.message vlastnost a vývojáři už nemusí kontrolovat Error.cause.message vlastnost.

Chcete-li usnadnit přechod z předchozí Error.cause chování budou podrobné chybové zprávy i nadále uváděny v Error.cause i nejvyšší úroveň Error objekt přibližně do 14. července 2023. Budoucí verze obou wrangler a klientské API D1 už nebude vyplňovat Error.cause po tomto datu.

2023-05-19

Nový experimentální backend

D1 má nový experimentální backend úložiště, který výrazně zlepšuje propustnost dotazů, latenci a spolehlivost. Tento experimentální backend se v blízké budoucnosti stane výchozím. Chcete-li vytvořit databázi pomocí experimentálního backendu, použijte wrangler a nastavte --experimental-backend příznak při vytváření databáze:

$ wrangler d1 create your-database --experimental-backend

Přečtěte si více o experimentálním backendu v blog s oznámením.

2023-05-19

Location hints

Nyní můžete zadat nápověda umístění při vytváření databáze D1, což ovlivní umístění leaderu (writeru). D1 ve výchozím nastavení vytvoří vaši databázi v lokalitě blízké místu, odkud jste požadavek na vytvoření databáze odeslali. Ve většině případů tak D1 umožňuje zvolit optimální umístění vaší databáze za vás.

2023-05-17

Dotazování JSON

Nová dokumentace byl publikován a popisuje rozsáhlou podporu funkcí JSON v D1. Funkce JSON umožňují analyzovat, dotazovat a upravovat JSON přímo v rámci SQL dotazů, čímž se snižuje počet zpátečních volání do databáze i množství dotazovaných dat.