import datasquirel from "@moduletrace/datasquirel"; import { execSync, ExecSyncOptions } from "child_process"; import os from "os"; export type ExportMariaDBDatabaseParam = { dbFullName: string; targetFilePath: string; mariadbUser?: string; mariadbHost?: string; mariadbPass?: string; }; export default async function importMariadbDatabase({ dbFullName, targetFilePath, mariadbHost, mariadbPass, mariadbUser, }: ExportMariaDBDatabaseParam) { const mysqlPath = os.platform().match(/win/i) ? "'" + "C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysql.exe" + "'" : "mysql"; const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME; const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST; const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD; await datasquirel.utils.connDbHandler( global.DSQL_DB_CONN, `CREATE DATABASE IF NOT EXISTS ${dbFullName}` ); const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p${finalMariadbPass} ${dbFullName} < ${targetFilePath}`; let execSyncOptions: ExecSyncOptions = { encoding: "utf-8", }; const importDb = execSync(cmd, execSyncOptions); return importDb; }