This commit is contained in:
Benjamin Toby
2025-02-12 11:52:25 +01:00
parent a2961d6b89
commit 95318307fe
8 changed files with 84 additions and 21 deletions
+1 -3
View File
@@ -1,5 +1,4 @@
"use strict";
// @ts-check
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
@@ -27,8 +26,7 @@ function apiGet(_a) {
query,
values: queryValues,
});
if (typeof query == "string" &&
query.match(/^alter|^delete|information_schema|databases|^create/i)) {
if (typeof query == "string" && query.match(/^alter|^delete|^create/i)) {
return { success: false, msg: "Wrong Input." };
}
let results;
+5 -4
View File
@@ -13,7 +13,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = createDbFromSchema;
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const noDatabaseDbHandler_1 = __importDefault(require("./utils/noDatabaseDbHandler"));
const varDatabaseDbHandler_1 = __importDefault(require("./utils/varDatabaseDbHandler"));
@@ -21,6 +20,7 @@ const createTable_1 = __importDefault(require("./utils/createTable"));
const updateTable_1 = __importDefault(require("./utils/updateTable"));
const dbHandler_1 = __importDefault(require("./utils/dbHandler"));
const ejson_1 = __importDefault(require("../utils/ejson"));
const grab_dir_names_1 = __importDefault(require("@/utils/backend/names/grab-dir-names"));
/**
* # Create database from Schema Function
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
@@ -28,9 +28,10 @@ const ejson_1 = __importDefault(require("../utils/ejson"));
function createDbFromSchema(_a) {
return __awaiter(this, arguments, void 0, function* ({ userId, targetDatabase, dbSchemaData, }) {
var _b, _c;
const schemaPath = userId
? path_1.default.join(String(process.env.DSQL_USER_DB_SCHEMA_PATH), `/user-${userId}/main.json`)
: path_1.default.resolve(__dirname, "../../jsonData/dbSchemas/main.json");
const { userSchemaMainJSONFilePath, mainShemaJSONFilePath } = (0, grab_dir_names_1.default)({
userId,
});
const schemaPath = userSchemaMainJSONFilePath || mainShemaJSONFilePath;
const dbSchema = dbSchemaData ||
ejson_1.default.parse(fs_1.default.readFileSync(schemaPath, "utf8"));
if (!dbSchema) {
@@ -0,0 +1,8 @@
export type ExportMariaDBDatabaseParam = {
dbFullName: string;
targetFilePath: string;
mariadbUser?: string;
mariadbHost?: string;
mariadbPass?: string;
};
export default function exportMariadbDatabase({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }: ExportMariaDBDatabaseParam): string | Buffer<ArrayBufferLike>;
@@ -0,0 +1,24 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = exportMariadbDatabase;
const child_process_1 = require("child_process");
const os_1 = __importDefault(require("os"));
function exportMariadbDatabase({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }) {
const mysqlDumpPath = os_1.default.platform().match(/win/i)
? "'" +
"C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysqldump.exe" +
"'"
: "mysqldump";
const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME;
const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST;
const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD;
const cmd = `${mysqlDumpPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p${finalMariadbPass} ${dbFullName} > ${targetFilePath}`;
let execSyncOptions = {
encoding: "utf-8",
};
const dumpDb = (0, child_process_1.execSync)(cmd, execSyncOptions);
return dumpDb;
}