INTEGRITY Dokumentace

Průvodce migrací alfa databáze

Otevřená beta verze D1 byla spuštěna v říjnu 2023 a nově vytvořené databáze používají odlišnou podkladovou architekturu, která je výrazně spolehlivější a výkonnější, s vyššími velikostmi databází, lepší propustností dotazů a nižší latencí.

Tento návod vás provede opětovným vytvořením alfa databází D1 v našem produkčním systému.

Předpoklady

  1. Máte wrangler nástroj příkazové řádky je nainstalovaný
  2. Používáte wrangler verze 3.33.0 nebo novější (vydáno v březnu 2024), protože starší verze nemají --remote příznak vyžadováno jako součást tohoto návodu
  3. Databáze D1 typu „alpha“. Všechny databáze vytvořené před 27. červencem 2023 (poznámky k verzi) používají alfa úložný backend, který už není podporován a nebyl doporučen pro produkční nasazení.

1. Ověřte, že databáze je alfa

npx wrangler d1 info <database_name>

Pokud je databáze ve verzi alpha, výstup příkazu bude obsahovat version nastaveno na alpha:

...
│ version           │ alpha                                 │
...

2. Vytvořte ruční zálohu

npx wrangler d1 backup create <alpha_database_name>

3. Stáhněte ruční zálohu

Následující příkaz stáhne ruční zálohu databáze alpha jako .sqlite3 soubor:

npx wrangler d1 backup download <alpha_database_name> <backup_id> # See available backups with wrangler d1 backup list <database_name>

4. Převeďte ruční zálohu na příkazy SQL

Následující příkaz převede ruční zálohu databáze alpha ze staženého .sqlite3 soubor na SQL příkazy, které pak lze importovat do nové databáze:

sqlite3 db_dump.sqlite3 .dump > db.sql

Jakmile spustíte výše uvedený příkaz, budete muset upravit výstupní soubor SQL tak, aby byl kompatibilní s D1:

  1. Odebrat BEGIN TRANSACTION a COMMIT; ze souboru.

  2. Odstraňte následující příkaz pro vytvoření tabulky:

    CREATE TABLE _cf_KV (
     	key TEXT PRIMARY KEY,
     	value BLOB
    ) WITHOUT ROWID;

5. Vytvořte novou databázi D1

Všechny nové databáze D1 ve výchozím nastavení používají aktualizovanou architekturu.

Spusťte následující příkaz pro vytvoření nové databáze:

npx wrangler d1 create <new_database_name>

6. Spusťte příkazy SQL nad novou databází D1

npx wrangler d1 execute <new_database_name> --remote --file=./db.sql

7. Odstraňte svou alfa databázi

Chcete-li odstranit svou předchozí alfa databázi, spusťte:

npx wrangler d1 delete <alpha_database_name>