跳至主要内容

使用 Prisma Postgres 与 TypeORM

TypeORM 是一个 TypeScript ORM。在本指南中,您将学习如何将 TypeORM 连接到 Prisma Postgres

先决条件

  • Node.js 版本 16 或更高
  • TypeScript 版本 4.5 或更高

1. 生成 TypeORM 项目

使用 TypeORM CLI 生成启动项目

npx typeorm init --name typeorm-quickstart --database postgres

此命令将生成一个新项目,其结构如下

typeorm-quickstart
├── src
│ ├── entity
│ │ └── User.ts # Sample entity
│ ├── migration # Migrations folder
│ ├── data-source.ts # Data source configuration
│ └── index.ts # Application entry point
├── .gitignore
├── package.json
├── README.md
└── tsconfig.json

2. 安装依赖项

导航到项目目录并安装依赖项

cd typeorm-quickstart
npm install

安装 dotenv 以加载环境变量

npm install dotenv

3. 创建 Prisma Postgres 数据库

您可以使用 create-db CLI 工具创建 Prisma Postgres 数据库。按照以下步骤创建您的 Prisma Postgres 数据库

npx create-db

然后 CLI 工具应该输出

┌  🚀 Creating a Prisma Postgres database

│ Provisioning a temporary database in us-east-1...

│ It will be automatically deleted in 24 hours, but you can claim it.

◇ Database created successfully!


● Database Connection


│ Connection String:

│ postgresql://hostname:password@db.prisma.io:5432/postgres?sslmode=require


◆ Claim Your Database

│ Keep your database for free:

│ https://create-db.prisma.io/claim?CLAIM_CODE

│ Database will be deleted on 11/18/2025, 1:55:39 AM if not claimed.


创建一个 .env 文件并添加输出中的连接字符串

.env
DATABASE_URL="postgresql://hostname:password@db.prisma.io:5432/postgres?sslmode=require"
警告

切勿将 .env 文件提交到版本控制。.env 添加到您的 .gitignore 文件中以确保凭据安全。

创建的数据库是临时的,如果未声明,将在 24 小时内删除。声明会将数据库移至您的帐户。访问输出中的声明 URL 以保留您的数据库。

注意

要了解有关 create-db CLI 工具的更多信息,请参阅 create-db 文档

4. 配置数据库连接

更新 src/data-source.ts 文件以使用您的 Prisma Postgres 连接

src/data-source.ts
import "reflect-metadata"
import "dotenv/config";
import { DataSource } from "typeorm"
import { User } from "./entity/User"

// Parse DATABASE_URL into connection parameters
function parseConnectionString(url: string) {
const parsed = new URL(url)
return {
host: parsed.hostname,
port: parseInt(parsed.port),
username: parsed.username,
password: parsed.password,
database: parsed.pathname.slice(1), // Remove leading '/'
}
}

const connectionParams = parseConnectionString(process.env.DATABASE_URL!)

export const AppDataSource = new DataSource({
type: "postgres",
host: "localhost",
port: 5432,
username: "test",
password: "test",
database: "test",
...connectionParams,
ssl: true,
synchronize: true,
logging: false,
entities: [User],
migrations: [],
subscribers: [],
})

5. 运行应用程序

启动应用程序

npm start

您应该会看到输出,表明连接成功,并且新用户已插入数据库

Inserting a new user into the database...
Saved a new user with id: 1
Loading users from the database...
Loaded users: [ User { id: 1, firstName: 'Timber', lastName: 'Saw', age: 25 } ]

后续步骤

您已成功将 TypeORM 连接到 Prisma Postgres!有关实体、迁移和查询等更高级功能,请参阅 TypeORM 文档

© . This site is unofficial and not affiliated with Prisma Data, Inc.