changed server2 user_profile.db to remove sqlite connection
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful

This commit is contained in:
Josh 2025-09-13 15:47:08 +00:00
parent 8cfcd2e2d7
commit 6578d3c856

View File

@ -503,17 +503,18 @@ let userProfileDb;
async function initDatabases() {
try {
// Open salary DB as an immutable, read-only URI so SQLite never touches -wal/-shm/-journal.
// Requires OPEN_URI flag in addition to OPEN_READONLY.
const SALARY_DB_URI = `file:${SALARY_DB_PATH}?immutable=1&mode=ro`;
dbSqlite = await open({
filename: SALARY_DB_PATH,
filename: SALARY_DB_URI,
driver : sqlite3.Database,
mode : sqlite3.OPEN_READONLY
mode : sqlite3.OPEN_READONLY | sqlite3.OPEN_URI
});
console.log('✅ Connected to salary_info.db');
// Light PRAGMAs safe for read-only workload
console.log('✅ Connected to salary_info.db (immutable, ro)');
// Read-only safe PRAGMAs (no write state). journal_mode/synchronous removed.
await dbSqlite.exec(`
PRAGMA busy_timeout=4000;
PRAGMA journal_mode=OFF;
PRAGMA synchronous=OFF;
PRAGMA temp_store=MEMORY;
`);
// One prepared statement: regional (param) + national in a single scan
@ -534,11 +535,18 @@ async function initDatabases() {
AND (AREA_TITLE = ? OR AREA_TITLE = 'U.S.')
`);
userProfileDb = await open({
filename: USER_PROFILE_DB_PATH,
driver : sqlite3.Database
});
console.log('✅ Connected to user_profile.db');
// In prod, user_profile is MySQL; do not try to open a SQLite file here.
// Leave dev behavior untouched: only open SQLite if clearly running non-prod.
if (process.env.NODE_ENV !== 'production') {
userProfileDb = await open({
filename: USER_PROFILE_DB_PATH,
driver : sqlite3.Database
});
console.log('✅ Connected to user_profile.db (sqlite, dev)');
} else {
userProfileDb = null;
console.log(' user_profile via MySQL pool (no SQLite open in prod)');
}
} catch (err) {
console.error('❌ DB init failed →', err);
process.exit(1);