fusero-app-boilerplate/mikro-orm.config.ts
2025-04-29 07:51:17 +02:00

46 lines
1.4 KiB
TypeScript

// import 'dotenv/config';
import dotenv from 'dotenv';
// Force reload `.env` even if it was previously loaded
dotenv.config({ override: true });
import { Options } from '@mikro-orm/core';
import { PostgreSqlDriver } from '@mikro-orm/postgresql';
import { Migrator } from '@mikro-orm/migrations';
const isProduction = process.env.NODE_ENV === 'production';
const config: Options = {
driver: PostgreSqlDriver,
entities: ['./dist/src/apps/_app/entities/**/*.js'],
entitiesTs: ['./src/apps/_app/entities/**/*.ts'],
extensions: [Migrator],
baseDir: process.cwd(),
discovery: {
warnWhenNoEntities: true,
disableDynamicFileAccess: false,
},
dbName: process.env.POSTGRES_NAME,
host: process.env.POSTGRES_HOSTNAME,
port: Number(process.env.POSTGRES_PORT),
// port: parseInt(process.env.POSTGRES_PORT || "5432", 10),
user: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
debug: !isProduction,
migrations: {
tableName: process.env.POSTGRES_NAME,
path: isProduction ? './dist/src/database/migrations' : './src/database/migrations',
glob: '!(*.d).{js,ts}',
transactional: true,
disableForeignKeys: true,
allOrNothing: true,
dropTables: true,
safe: false,
snapshot: true,
emit: 'ts',
},
};
export default config;