48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
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',
|
|
'./dist/src/apps/canvas-api/entities/**/*.js',
|
|
],
|
|
entitiesTs: [
|
|
'./src/apps/_app/entities/**/*.ts',
|
|
'./src/apps/canvas-api/entities/**/*.ts',
|
|
],
|
|
extensions: [Migrator],
|
|
baseDir: process.cwd(),
|
|
discovery: {
|
|
warnWhenNoEntities: true,
|
|
disableDynamicFileAccess: false,
|
|
},
|
|
dbName: process.env.POSTGRES_NAME || 'fusero-boilerplate-db',
|
|
host: process.env.POSTGRES_HOSTNAME || 'localhost',
|
|
port: Number(process.env.POSTGRES_PORT) || 5432,
|
|
user: process.env.POSTGRES_USER || 'root',
|
|
password: process.env.POSTGRES_PASSWORD || 'root123',
|
|
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;
|