Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

アルファデータベースの移行ガイド

最終更新 Markdown で表示Agent セットアップ

D1 のオープンベータは 2023年10月に開始しました。新規作成したデータベースは、信頼性と性能が大きく向上した別の基盤アーキテクチャを使い、データベースサイズの拡大、クエリスループットの向上、レイテンシの低減に対応しています。

このガイドでは、アルファ版の D1 データベースを本番利用可能なシステム上に再作成する手順を説明します。

前提条件

  1. wrangler コマンドラインツール をインストール済みであること
  2. wrangler のバージョンが 3.33.0 以降(2024年3月リリース)であること。それより前のバージョンには、このガイドで必要な --remote フラグ がありません
  3. 「アルファ」の D1 データベースがあること。2023年7月27日より前に作成したデータベースはすべて(リリースノート)、アルファストレージバックエンドを使っています。このバックエンドはサポート終了済みで、本番利用は推奨されていませんでした。

1. データベースがアルファであることを確認する

npx wrangler d1 info <database_name>

データベースがアルファの場合、コマンドの出力に versionalpha と表示されます。

...
│ version           │ alpha                                 │
...

2. 手動バックアップを作成する

npx wrangler d1 backup create <alpha_database_name>

3. 手動バックアップをダウンロードする

次のコマンドで、アルファデータベースの手動バックアップを .sqlite3 ファイルとしてダウンロードします。

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

4. 手動バックアップを SQL 文に変換する

次のコマンドで、ダウンロードした .sqlite3 ファイルからアルファデータベースの手動バックアップを SQL 文に変換します。その後、新しいデータベースにインポートできます。

sqlite3 db_dump.sqlite3 .dump > db.sql

上記のコマンドを実行したら、出力された SQL ファイルを D1 と互換になるよう編集します。

  1. ファイルから BEGIN TRANSACTIONCOMMIT; を削除します。

  2. 次のテーブル作成文を削除します。

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

5. 新しい D1 データベースを作成する

新しい D1 データベースは、すべて更新済みアーキテクチャを既定で使います。

次のコマンドで新しいデータベースを作成します。

npx wrangler d1 create <new_database_name>

6. 新しい D1 データベースに対して SQL 文を実行する

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

7. アルファデータベースを削除する

以前のアルファデータベースを削除するには、次を実行します。

npx wrangler d1 delete <alpha_database_name>

役に立ちましたか?