27 lines
1.3 KiB
TypeScript
27 lines
1.3 KiB
TypeScript
import { registerAs } from '@nestjs/config';
|
|
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
|
|
import { User } from '../modules/users/entities/user.entity';
|
|
import { Category } from '../modules/categories/entities/category.entity';
|
|
import { Product } from '../modules/products/entities/product.entity';
|
|
import { Transaction } from '../modules/transactions/entities/transaction.entity';
|
|
import { TransactionItem } from '../modules/transactions/entities/transaction-item.entity';
|
|
import { RefreshToken } from '../modules/auth/entities/refresh-token.entity';
|
|
|
|
export default registerAs(
|
|
'database',
|
|
(): TypeOrmModuleOptions => ({
|
|
type: 'postgres',
|
|
host: process.env.DB_HOST || 'localhost',
|
|
port: parseInt(process.env.DB_PORT || '', 10) || 5432,
|
|
username: process.env.DB_USERNAME || 'postgres',
|
|
password: process.env.DB_PASSWORD || 'postgres',
|
|
database: process.env.DB_DATABASE || 'retail_pos',
|
|
entities: [User, Category, Product, Transaction, TransactionItem, RefreshToken],
|
|
synchronize: process.env.NODE_ENV === 'development' ? false : false, // Always false for safety
|
|
logging: process.env.NODE_ENV === 'development',
|
|
migrations: ['dist/database/migrations/*.js'],
|
|
migrationsRun: false, // Run migrations manually
|
|
ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false } : false,
|
|
}),
|
|
);
|