Alternatively, you can generate migrations using the drizzle-kit generate
command and then apply them using the drizzle-kit migrate
command:
Generate migrations:
Apply migrations:
Read more about migration process in documentation.
Drizzle 对 Neon 连接有原生支持,使用 neon-http
和 neon-websockets
驱动。这些驱动在底层使用 neon-serverless 驱动。
通过 neon-http
和 neon-websockets
驱动,您可以通过 HTTP 或 WebSockets 从无服务器环境访问 Neon 数据库,而不是使用 TCP。通过 HTTP 查询对于单个非交互式事务而言速度更快。
如果您需要会话或交互式事务支持,或者完全兼容的 pg
驱动替代品,您可以使用基于 WebSocket 的 neon-serverless
驱动。您可以直接使用 Postgres 连接到 Neon 数据库。
这是项目的基本文件结构。在 src/db
目录中,我们在 schema.ts
中有表定义。在 drizzle
文件夹中,有 SQL 迁移文件和快照。
Create a .env
file in the root of your project and add your database connection variable:
Create a index.ts
file in the src/db
directory and initialize the connection:
If you need a synchronous connection, you can use our additional connection API, where you specify a driver connection and pass it to the Drizzle instance.
Create a schema.ts
file in the src/db
directory and declare your table:
Drizzle config - a configuration file that is used by Drizzle Kit and contains all the information about your database connection, migration folder and schema files.
Create a drizzle.config.ts
file in the root of your project and add the following content:
You can directly apply changes to your database using the drizzle-kit push
command. This is a convenient method for quickly testing new schema designs or modifications in a local development environment, allowing for rapid iterations without the need to manage migration files:
Read more about the push command in documentation.
Alternatively, you can generate migrations using the drizzle-kit generate
command and then apply them using the drizzle-kit migrate
command:
Generate migrations:
Apply migrations:
Read more about migration process in documentation.
Let’s update the src/index.ts
file with queries to create, read, update, and delete users
To run any TypeScript files, you have several options, but let’s stick with one: using tsx
You’ve already installed tsx
, so we can run our queries now
Run index.ts
script
We suggest using bun
to run TypeScript files. With bun
, such scripts can be executed without issues or additional
settings, regardless of whether your project is configured with CommonJS (CJS), ECMAScript Modules (ESM), or any other module format.
To run a script with bun
, use the following command:
If you don’t have bun installed, check the Bun installation docs