초기 PM 소스 전체 업로드
This commit is contained in:
31
db/config.js
Normal file
31
db/config.js
Normal file
@@ -0,0 +1,31 @@
|
||||
require('dotenv').config();
|
||||
|
||||
module.exports = {
|
||||
"ONPREMISE_DB": {
|
||||
"host" : process.env.ONPREMISE_POSTGRES_HOST,
|
||||
"port" : parseInt(process.env.ONPREMISE_POSTGRES_PORT) || 5432,
|
||||
"database" : process.env.ONPREMISE_POSTGRES_DATABASE,
|
||||
"user" : process.env.ONPREMISE_POSTGRES_USER,
|
||||
"password" : process.env.ONPREMISE_POSTGRES_PASSWORD,
|
||||
"max": 40,
|
||||
// "idleTimeoutMillis": 30000,
|
||||
"idleTimeoutMillis": 5000,
|
||||
"connectionTimeoutMillis": 5000, // 최대 커넥션 대기 시간
|
||||
// "statement_timeout": 3000
|
||||
},
|
||||
"CLOUD_DB": {
|
||||
"host" : process.env.CLOUD_POSTGRES_HOST,
|
||||
"port" : parseInt(process.env.CLOUD_POSTGRES_PORT) || 5432,
|
||||
"database" : process.env.CLOUD_POSTGRES_DATABASE,
|
||||
"user" : process.env.CLOUD_POSTGRES_USER,
|
||||
"password" : process.env.CLOUD_POSTGRES_PASSWORD,
|
||||
"max": 40,
|
||||
// "idleTimeoutMillis": 30000,
|
||||
"idleTimeoutMillis": 5000,
|
||||
"connectionTimeoutMillis": 5000, // 최대 커넥션 대기 시간
|
||||
// "statement_timeout": 3000,
|
||||
"ssl": {
|
||||
ca: process.env.CLOUD_POSTGRES_SSL_CA
|
||||
}
|
||||
},
|
||||
}
|
||||
14
db/index.js
Normal file
14
db/index.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const pool = require('./pool.js');
|
||||
require('dotenv').config();
|
||||
|
||||
module.exports = async () => {
|
||||
let client;
|
||||
try {
|
||||
client = await pool.connect();
|
||||
console.log(`📡 [db/index.js] ${process.env.DEPLOYMENT_TYPE} DB 연결 성공`);
|
||||
} catch (err) {
|
||||
console.error('📡 [db/index.js] DB 연결 에러:', err.stack);
|
||||
} finally {
|
||||
client.release(); // 연결 객체를 풀에 반환합니다.
|
||||
}
|
||||
};
|
||||
10
db/pool.js
Normal file
10
db/pool.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const { Pool } = require('pg');
|
||||
require('dotenv').config();
|
||||
|
||||
const env = `${process.env.DEPLOYMENT_TYPE}_DB`; // ONPREMISE_DB / CLOUD_DB
|
||||
const config= require('./config.js')[env];
|
||||
const pool = new Pool(config);
|
||||
|
||||
// 커넥션 설정: https://jojoldu.tistory.com/634
|
||||
|
||||
module.exports = pool;
|
||||
Reference in New Issue
Block a user