当前位置: 首页 > 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

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

相关文章:

  • 【群体结构 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项目报错汇总
  • 磐维数据库的权限使用
  • 上海建设和交通委网站/上海seo推广服务
  • 淘宝客网站做一种还是做好几种/广州seo优化公司
  • 两学一做的做题网站是多少/网络销售是做什么的
  • 网站开发流程及详解/做seo用哪种建站程序最好
  • 音乐培训如何做网站宣传/太原网站建设谁家好
  • 刷赞网站怎么做的/今日头条最新新闻消息