D1 的公开 Beta 于 2023 年 10 月推出,新创建的数据库使用显著更可靠、性能更高的不同底层架构,具有更大的数据库容量、更高的查询吞吐量和更低的延迟。
本指南将指导您在可用于 production 的系统上重新创建 alpha D1 数据库。
- 您已安装
wrangler命令行工具 - 您使用的是
wrangler3.33.0 或更高版本(2024 年 3 月发布),因为更早版本没有本指南所需的--remote标志 - 一个 "alpha" D1 数据库。2023 年 7 月 27 日之前创建的所有数据库(发布说明)使用 alpha 存储后端,该后端不再受支持,且不建议用于 production。
npx wrangler d1 info <database_name>如果数据库是 alpha,命令输出将包含 version 设置为 alpha:
...
│ version │ alpha │
...npx wrangler d1 backup create <alpha_database_name>以下命令将以 .sqlite3 文件形式下载 alpha 数据库的手动备份:
npx wrangler d1 backup download <alpha_database_name> <backup_id> # See available backups with wrangler d1 backup list <database_name>以下命令将从下载的 .sqlite3 文件将 alpha 数据库的手动备份转换为 SQL 语句,然后可以导入新数据库:
sqlite3 db_dump.sqlite3 .dump > db.sql运行上述命令后,您需要编辑输出的 SQL 文件以使其与 D1 兼容:
-
从文件中删除
BEGIN TRANSACTION和COMMIT;。 -
删除以下表创建语句:
CREATE TABLE _cf_KV ( key TEXT PRIMARY KEY, value BLOB ) WITHOUT ROWID;
所有新 D1 数据库默认使用更新的架构。
运行以下命令创建新数据库:
npx wrangler d1 create <new_database_name>npx wrangler d1 execute <new_database_name> --remote --file=./db.sql要删除之前的 alpha 数据库,运行:
npx wrangler d1 delete <alpha_database_name>