跳转到内容
搜索文档

Alpha 数据库迁移指南

最后更新 查看 MarkdownAgent 设置

D1 的公开 Beta 于 2023 年 10 月推出,新创建的数据库使用显著更可靠、性能更高的不同底层架构,具有更大的数据库容量、更高的查询吞吐量和更低的延迟。

本指南将指导您在可用于 production 的系统上重新创建 alpha D1 数据库。

前提条件

  1. 您已安装 wrangler 命令行工具
  2. 您使用的是 wrangler 3.33.0 或更高版本(2024 年 3 月发布),因为更早版本没有本指南所需的 --remote 标志
  3. 一个 "alpha" D1 数据库。2023 年 7 月 27 日之前创建的所有数据库(发布说明)使用 alpha 存储后端,该后端不再受支持,且不建议用于 production。

1. 验证数据库是否为 alpha

npx wrangler d1 info <database_name>

如果数据库是 alpha,命令输出将包含 version 设置为 alpha

...
│ version           │ alpha                                 │
...

2. 创建手动备份

npx wrangler d1 backup create <alpha_database_name>

3. 下载手动备份

以下命令将以 .sqlite3 文件形式下载 alpha 数据库的手动备份:

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

4. 将手动备份转换为 SQL 语句

以下命令将从下载的 .sqlite3 文件将 alpha 数据库的手动备份转换为 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. 删除 alpha 数据库

要删除之前的 alpha 数据库,运行:

npx wrangler d1 delete <alpha_database_name>

这篇文档对您有帮助吗?