# TypeORM with Fastify — Fastify

Source: https://www.geekswithgeeks.com/en/fastify/ff-typeorm

> Integrate TypeORM for type-safe database access.

## Why TypeORM?

TypeORM provides type-safe queries, migrations, and relations. Pair it with Fastify for a robust, scalable backend.

## Setting up TypeORM

Initialize a data source and create a plugin to manage the connection.

```javascript
import { DataSource } from 'typeorm';
import { User } from './entities/User.js';

const AppDataSource = new DataSource({
  type: 'postgres',
  host: 'localhost',
  port: 5432,
  database: 'mydb',
  entities: [User],
  synchronize: true,
});

export default async function typeormPlugin(fastify) {
  await AppDataSource.initialize();
  fastify.decorate('db', AppDataSource);
  
  fastify.addHook('onClose', () => AppDataSource.destroy());
}
```
