54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
import knex from 'knex';
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname } from 'path';
|
|
import config from '../knexfile.js';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
let db = null;
|
|
|
|
export async function getDB() {
|
|
if (!db) {
|
|
db = knex(config);
|
|
await db.migrate.latest();
|
|
}
|
|
return db;
|
|
}
|
|
|
|
export async function initDB() {
|
|
const db = await getDB();
|
|
|
|
const existing = await db('cv_data').where({ id: 1 }).first();
|
|
if (!existing) {
|
|
await db('cv_data').insert({
|
|
id: 1,
|
|
data: JSON.stringify({
|
|
personal: {
|
|
name: "Tuan-Dat Tran",
|
|
title: "Junior DevOps Engineer",
|
|
intro: "Passionierter DevOps Engineer mit Fokus auf Cloud-Infrastruktur.",
|
|
email: "tuan-dat.tran@example.com",
|
|
github: "https://github.com/tuan-dat-tran",
|
|
linkedin: "https://linkedin.com/in/tuan-dat-tran",
|
|
location: "Deutschland"
|
|
},
|
|
experience: [],
|
|
skills: {},
|
|
education: [],
|
|
projects: []
|
|
})
|
|
});
|
|
console.log('Initialized database with default CV data');
|
|
}
|
|
|
|
console.log('Database initialized');
|
|
}
|
|
|
|
export async function closeDB() {
|
|
if (db) {
|
|
await db.destroy();
|
|
db = null;
|
|
}
|
|
}
|