mirror of
https://github.com/zadam/trilium.git
synced 2025-10-26 15:56:29 +01:00
chore(dx/server): improve asset management for DB init
This commit is contained in:
10
apps/server/src/services/assets.ts
Normal file
10
apps/server/src/services/assets.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { join } from "path";
|
||||
|
||||
const ASSET_ROOT_DIR = process.env.SERVER_ASSET_ROOT_DIR;
|
||||
if (!ASSET_ROOT_DIR) {
|
||||
console.error("Missing SERVER_ASSET_ROOT_DIR env.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
/** Contains database initialization data such as the demo database and the schema. */
|
||||
export const DB_INIT_DIR = join(ASSET_ROOT_DIR, "db")
|
||||
@@ -6,15 +6,8 @@ export const RESOURCE_DIR = path.join(getResourceDir(), "assets");
|
||||
|
||||
// where the "trilium" executable is
|
||||
const ELECTRON_APP_ROOT_DIR = path.resolve(RESOURCE_DIR, "../..");
|
||||
const DB_INIT_DIR = path.resolve(RESOURCE_DIR, "db");
|
||||
|
||||
if (!fs.existsSync(DB_INIT_DIR)) {
|
||||
console.error(`Could not find DB initialization directory: ${DB_INIT_DIR}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
export default {
|
||||
RESOURCE_DIR,
|
||||
DB_INIT_DIR,
|
||||
ELECTRON_APP_ROOT_DIR
|
||||
};
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import log from "./log.js";
|
||||
import fs from "fs";
|
||||
import resourceDir from "./resource_dir.js";
|
||||
import sql from "./sql.js";
|
||||
import { isElectron, deferred } from "./utils.js";
|
||||
import optionService from "./options.js";
|
||||
@@ -17,6 +16,7 @@ import zipImportService from "./import/zip.js";
|
||||
import password from "./encryption/password.js";
|
||||
import backup from "./backup.js";
|
||||
import eventService from "./events.js";
|
||||
import { DB_INIT_DIR } from "./assets.js";
|
||||
|
||||
export const dbReady = deferred<void>();
|
||||
|
||||
@@ -75,8 +75,8 @@ async function createInitialDatabase(skipDemoDb?: boolean) {
|
||||
throw new Error("DB is already initialized");
|
||||
}
|
||||
|
||||
const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf-8");
|
||||
const demoFile = (!skipDemoDb ? fs.readFileSync(`${resourceDir.DB_INIT_DIR}/demo.zip`) : null);
|
||||
const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf-8");
|
||||
const demoFile = (!skipDemoDb ? fs.readFileSync(`${DB_INIT_DIR}/demo.zip`) : null);
|
||||
|
||||
let rootNote!: BNote;
|
||||
|
||||
@@ -153,7 +153,7 @@ async function createDatabaseForSync(options: OptionRow[], syncServerHost = "",
|
||||
throw new Error("DB is already initialized");
|
||||
}
|
||||
|
||||
const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf8");
|
||||
const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf8");
|
||||
|
||||
// We have to import async since options init requires keyboard actions which require translations.
|
||||
const optionsInitService = (await import("./options_init.js")).default;
|
||||
|
||||
Reference in New Issue
Block a user