使用 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 文档。