下载模板
在 Markdown 中,你可以使用列表和缩进来表示文件目录结构。以下是一个简单的示例:
项目目录结构
├── README.md
├── src/
│ ├── api/
│ │ ├── users/
│ │ │ ├── dto/
│ │ │ ├── openapi/
│ │ │ ├── user.routes.ts
│ │ │ └── user.service.ts
│ ├── core/
│ │ ├── database/
│ │ └── configs/
│ └── utils/
└─└── wrangler.toml
模板地址:https://github.com/pinky-pig/starter-d1-hono-drizzle.git
- Hono.js、 Drizzle ORM、 Cloudflare D1
- Swagger
- api 文件夹其实就是相当于 controller
- api/**/*.service.ts 其实就是 service
- api/**/.dto 和 api/*/*.openapi 就是 controller 下各个接口的 dto 和 swagger 文档
- core/database/schema 下定义的是各个表结构
- 最终所有在 api/** 下定义的所有的路由,都在 src/index.ts 中注册
1. 修改 wrangler.toml
将 wrangler.example.toml 重命名为 wrangler.toml 并根据项目配置。
2. 迁移 D1 数据库
pnpm run db:generate # 生成迁移文件
pnpm run db:apply <db-name> --local # 本地数据库
pnpm run db:apply <db-name> --remote # 云端数据库
BASH
3. 本地运行项目
pnpm run dev
BASH
4. 部署项目到 Workers
pnpm run deploy
BASH
导入数据
先将第三方数据通过 navicat 或者 DataGrip 将数据(sql 文件、JSON 文件等)导入到本地数据库。 进行开发完成后,需要将数据导入到云端数据库。 然后从本地数据库中导出为 sql 文件,但是数据量可能会比较大,那么需要先拆分,然后再分批导入。
# 拆分 sql 文件
pnpm run db:split-sql
# 导入 sql 文件
pnpm run db:import-sql-remote
BASH