https://github.com/ivansaul/d1-template
https://github.com/ivansaul/d1-template
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ivansaul/d1-template
- Owner: ivansaul
- Created: 2025-06-27T05:26:46.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2025-06-27T05:27:14.000Z (4 months ago)
- Last Synced: 2025-06-27T05:36:06.906Z (4 months ago)
- Language: TypeScript
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Worker + D1 Database
[](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/templates/tree/main/d1-template)

D1 is Cloudflare's native serverless SQL database ([docs](https://developers.cloudflare.com/d1/)). This project demonstrates using a Worker with a D1 binding to execute a SQL statement. A simple frontend displays the result of this query:
```SQL
SELECT * FROM comments LIMIT 3;
```
The D1 database is initialized with a `comments` table and this data:
```SQL
INSERT INTO comments (author, content)
VALUES
('Kristian', 'Congrats!'),
('Serena', 'Great job!'),
('Max', 'Keep up the good work!')
;
```
> [!IMPORTANT]
> When using C3 to create this project, select "no" when it asks if you want to deploy. You need to follow this project's [setup steps](https://github.com/cloudflare/templates/tree/main/d1-template#setup-steps) before deploying.
## Getting Started
Outside of this repo, you can start a new project with this template using [C3](https://developers.cloudflare.com/pages/get-started/c3/) (the `create-cloudflare` CLI):
```
npm create cloudflare@latest -- --template=cloudflare/templates/d1-template
```
A live public deployment of this template is available at [https://d1-template.templates.workers.dev](https://d1-template.templates.workers.dev)
## Setup Steps
1. Install the project dependencies with a package manager of your choice:
```bash
npm install
```
2. Create a [D1 database](https://developers.cloudflare.com/d1/get-started/) with the name "d1-template-database":
```bash
npx wrangler d1 create d1-template-database
```
...and update the `database_id` field in `wrangler.json` with the new database ID.
3. Run the following db migration to initialize the database (notice the `migrations` directory in this project):
```bash
npx wrangler d1 migrations apply --remote d1-template-database
```
4. Deploy the project!
```bash
npx wrangler deploy
```