当前位置: 首页 > 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.xdnf.cn/news/971947.html

相关文章:

  • QFuture的使用方式
  • vue的created和mounted区别
  • 替代爬虫!亚马逊API采集商品详情实时数据开发教程
  • 《Java开发者进击之路:掌握Spring AI与DL4J,实现AI模型API集成》
  • MCU Keil中支持的变量类型和定义方法
  • 美业门店/个案疗愈门店管理系统具备「活动促销」功能有哪些优势?
  • 多面体编译的循环分块
  • iOS和桌面双端抓包实战经验总结:Sniffmaster与常见工具组合解析
  • 算法工程师工作面试常考问题汇总
  • HarmonyOS 应用开发学习记录 - 从Windows开发者视角看鸿蒙开发
  • RabbitMQ的使用--Spring AMQP(更新中)
  • 期末考试复习总结-《从简单的页面开始(上)》
  • CentOS7下的Nginx部署
  • 行业 |5G六年,互联网改变了什么?
  • WHAT - 组件库开发场景 - 完全无样式的 UI 组件库 Headless UI
  • 看板更新不及时该如何规范
  • jQuery带动画特效的圆形导航菜单特效
  • Playwright 与 Selenium:自动化测试的两大主流工具对比
  • iOS超级签申请流程及环境部署
  • 从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
  • 二叉树进阶:经典算法题详解
  • AD8539ARZ ADI 精密放大器 电子元器件解析
  • 判断素数两种方法【自用】
  • 【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
  • 工作中开发的sql总结
  • LeetCode 200.岛屿数量
  • 天猫官方认证TP服务商——品融电商代运营全链路解析
  • 无需安装!在线 SQL 数据库工具实战 :经典 SQL 语句案例
  • NY167NY171美光固态闪存NY176NY180
  • 《炒股进阶:MACD交易技术从入门到精通》速读笔记