当前位置: 首页 > news >正文

通过Wrangler CLI在worker中创建数据库和表

官方使用文档:Getting started · Cloudflare D1 docs 

创建数据库

在命令行中执行完成之后,会在本地和远程创建数据库:

npx wrangler@latest d1 create prod-d1-tutorial

在cf中就可以看到数据库:

现在,您的Cloudflare帐户中有一个D1数据库,该数据库与您的Cloudflare Worker绑定。
复制命令输出的最后一部分并将其粘贴到Wrangler文件中。它应该看起来像这样:

接下来,您将在数据库中创建一个数据库表,使用Prisma ORM向D1发送查询。

创建数据表

先在本地创建一个数据库表来测试是否可行,需要在本地新建一个schame.sql文件,里面的内容如下:

-- CreateTable
CREATE TABLE "User" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"email" TEXT NOT NULL,"name" TEXT
);-- CreateIndex
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");DROP TABLE IF EXISTS Customers;
CREATE TABLE IF NOT EXISTS Customers (CustomerId INTEGER PRIMARY KEY, CompanyName TEXT, ContactName TEXT);
INSERT INTO Customers (CustomerID, CompanyName, ContactName) VALUES (1, 'Alfreds Futterkiste', 'Maria Anders'), (4, 'Around the Horn', 'Thomas Hardy'), (11, 'Bs Beverages', 'Victoria Ashworth'), (13, 'Bs Beverages', 'Random Name');

然后在本地执行这个sql以创建数据表 :

npx wrangler d1 execute prod-d1-tutorial --local --file=./migrations/schema.sql

运行命令以验证是否存在这个表:

npx wrangler d1 execute prod-d1-tutorial --local --command="SELECT * FROM Customers"

在Worker中执行查询

开始在worker中执行查询命令来获取数据表中的数据,使用ts的话,直接复制代码到worker中

export interface Env {// If you set another name in the Wrangler config file for the value for 'binding',// replace "DB" with the variable name you defined.DB: D1Database;
}export default {async fetch(request, env): Promise<Response> {const { pathname } = new URL(request.url);if (pathname === '/api/beverages') {// If you did not use `DB` as your binding name, change it hereconst { results } = await env.DB.prepare('SELECT * FROM Customers WHERE CompanyName = ?').bind('Bs Beverages').all();return Response.json(results);}return new Response('Call /api/beverages to see everyone who works at Bs Beverages');},
} satisfies ExportedHandler<Env>;

然后启动服务后,在浏览器中访问http://localhost:8787/api/beverages

就可以得到查询的结果:

将服务部署到线上

要使用Wrangler将Worker部署到生产环境,您必须首先在将--local标志替换为--remote标志后重复数据库配置步骤,以便读取Worker数据。这将创建数据库表并将数据导入数据库的生产版本:

npx wrangler d1 execute prod-d1-tutorial --remote --file=./migrations/schema.sqlnpx wrangler d1 execute prod-d1-tutorial --remote --command="SELECT * FROM Customers"

如果执行没有问题,线上就可以看到结果数据了:

删除数据库

删除数据库的操作只需要执行命令就可以了:

npx wrangler d1 delete prod-d1-tutorial

 下一章讲的内容,可以到官方文档最后查看

http://www.dtcms.com/a/242976.html

相关文章:

  • 【群体结构 ADMIXTURE之一】: fast ancestry estimation
  • 闪回还能导致OGG同步失败
  • OpenLayers 可视化之热力图
  • spa首屏加载慢怎样解决
  • 探究如何判断一个值是Promise
  • 有符号变量与无符号变量的区别和联系
  • C++ 智能指针
  • STM32标准库-DMA直接存储器存取
  • 卡方检验(χ²检验)
  • 6个月Python学习计划 Day 19 - 模块与包的实战拆分
  • AI赋能农业
  • 线程分离属性
  • JavaScript BOM 详细介绍
  • C++ 标准模板库(STL)详解文档
  • 2506C++,C++的时间库
  • 2025-03-15-位运算
  • 树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
  • Canfestival的移植思想
  • SpringBoot项目报错汇总
  • 磐维数据库的权限使用
  • 7.6 Finetuning the LLM on instruction data
  • SciencePlots——绘制论文中的图片
  • 软件开发和嵌入式开发岗位的面试题
  • PLC入门【7】基本指令的总结(MC、MCR)
  • threadlocal的实现说明
  • Doris “_stream_load“ 方式批量导入数据
  • 使用Ajax从前端向后端发起请求
  • 算法第12天|继续学习二叉树:翻转二叉树、对称二叉树、二叉树最大深度、二叉树的最小深度
  • 铭豹扩展坞 USB转网口 突然无法识别解决方法
  • 蓝奏云(Lanzou Cloud)一款国内知名的免费网盘和文件分享服务 以及蓝奏云的api