Skip to main content
Prisma Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

TypeORM

TypeORM is a TypeScript ORM. In this guide, you'll learn how to connect TypeORM to Prisma Postgres.

  • Node.js version 16 or higher
  • TypeScript version 4.5 or higher

Use the TypeORM CLI to generate a starter project:

title="bun"
bunx typeorm init --name typeorm-quickstart --database postgres
pnpm
pnpm dlx typeorm init --name typeorm-quickstart --database postgres
yarn
yarn dlx typeorm init --name typeorm-quickstart --database postgres
npm
npx typeorm init --name typeorm-quickstart --database postgres

This command will generate a new project with the following structure:

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

Navigate to the project directory and install dependencies:

title="bun"
cd typeorm-quickstart

bun install
pnpm
cd typeorm-quickstart
pnpm install
yarn
cd typeorm-quickstart
yarn install
npm
cd typeorm-quickstart
npm install

Install dotenv to load environment variables:

title="bun"
bun add dotenv
pnpm
pnpm add dotenv
yarn
yarn add dotenv
npm
npm install dotenv

Create a Prisma Postgres database with the create-db CLI tool:

title="bun"
bunx create-db
pnpm
pnpm dlx create-db
yarn
yarn dlx create-db
npm
npx create-db

Then the CLI tool should output:

┌  🚀 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.

│

└

Create a .env file and add the connection string from the output:

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

The database created is temporary and will be deleted in 24 hours unless claimed. Claiming moves the database into your Prisma Data Platform account. Visit the claim URL from the output to keep your database.

Update the src/data-source.ts file to use your Prisma Postgres connection:

title="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: [],

});

Start the application:

title="bun"
bun start
pnpm
pnpm start
yarn
yarn start
npm
npm start

You should see output indicating the connection was successful and a new user was inserted into the database:

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 is now connected to Prisma Postgres. For entities, migrations, and queries, see the TypeORM documentation.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu