46 lines
1.4 KiB
TypeScript
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;
|