Updates
This commit is contained in:
+2
-9
@@ -1,20 +1,13 @@
|
||||
import { DSQL_DatabaseSchemaType, DSQL_TableSchemaType } from "../../types";
|
||||
import { DSQL_TableSchemaType } from "../../types";
|
||||
type Param = {
|
||||
dbFullName: string;
|
||||
tableName: string;
|
||||
tableInfoArray: any[];
|
||||
dbSchema?: DSQL_DatabaseSchemaType[];
|
||||
tableSchema?: DSQL_TableSchemaType;
|
||||
recordedDbEntry?: any;
|
||||
clone?: boolean;
|
||||
};
|
||||
/**
|
||||
* # Create Table Functions
|
||||
*/
|
||||
export default function createTable({ dbFullName, tableName, tableInfoArray, dbSchema, clone, tableSchema, recordedDbEntry, }: Param): Promise<any>;
|
||||
export default function createTable({ dbFullName, tableName, tableInfoArray, tableSchema, recordedDbEntry, }: Param): Promise<any>;
|
||||
export {};
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
|
||||
+4
-18
@@ -21,7 +21,7 @@ const dbHandler_1 = __importDefault(require("./dbHandler"));
|
||||
* # Create Table Functions
|
||||
*/
|
||||
function createTable(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, tableInfoArray, dbSchema, clone, tableSchema, recordedDbEntry, }) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ dbFullName, tableName, tableInfoArray, tableSchema, recordedDbEntry, }) {
|
||||
/**
|
||||
* Format tableInfoArray
|
||||
*
|
||||
@@ -34,7 +34,7 @@ function createTable(_a) {
|
||||
* @description Grab Schema
|
||||
*/
|
||||
const createTableQueryArray = [];
|
||||
createTableQueryArray.push(`CREATE TABLE IF NOT EXISTS \`${tableName}\` (`);
|
||||
createTableQueryArray.push(`CREATE TABLE IF NOT EXISTS \`${dbFullName}\`.\`${tableName}\` (`);
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
@@ -43,15 +43,14 @@ function createTable(_a) {
|
||||
throw new Error("Recorded Db entry not found!");
|
||||
}
|
||||
const existingTable = yield (0, varDatabaseDbHandler_1.default)({
|
||||
database: "datasquirel",
|
||||
queryString: `SELECT * FROM user_database_tables WHERE db_id = ? AND table_slug = ?`,
|
||||
queryString: `SELECT * FROM datasquirel.user_database_tables WHERE db_id = ? AND table_slug = ?`,
|
||||
queryValuesArray: [recordedDbEntry.id, tableSchema === null || tableSchema === void 0 ? void 0 : tableSchema.tableName],
|
||||
});
|
||||
/** @type {import("../../types").MYSQL_user_database_tables_table_def} */
|
||||
const table = existingTable === null || existingTable === void 0 ? void 0 : existingTable[0];
|
||||
if (!(table === null || table === void 0 ? void 0 : table.id)) {
|
||||
const newTableEntry = yield (0, dbHandler_1.default)({
|
||||
query: `INSERT INTO user_database_tables SET ?`,
|
||||
query: `INSERT INTO datasquirel.user_database_tables SET ?`,
|
||||
values: {
|
||||
user_id: recordedDbEntry.user_id,
|
||||
db_id: recordedDbEntry.id,
|
||||
@@ -66,7 +65,6 @@ function createTable(_a) {
|
||||
date_updated: Date(),
|
||||
date_updated_code: Date.now(),
|
||||
},
|
||||
database: "datasquirel",
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -100,9 +98,6 @@ function createTable(_a) {
|
||||
createTableQueryArray.push(" " + fieldEntryText + comma);
|
||||
////////////////////////////////////////
|
||||
}
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
if (foreignKeys[0]) {
|
||||
foreignKeys.forEach((foreighKey, index, array) => {
|
||||
var _a, _b, _c, _d, _e;
|
||||
@@ -126,16 +121,7 @@ function createTable(_a) {
|
||||
////////////////////////////////////////
|
||||
const newTable = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: createTableQuery,
|
||||
database: dbFullName,
|
||||
});
|
||||
return newTable;
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
});
|
||||
}
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
/** ****************************************************************************** */
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
type Param = {
|
||||
query: string;
|
||||
values?: string[] | object;
|
||||
database?: string;
|
||||
};
|
||||
/**
|
||||
* # Main DB Handler Function
|
||||
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
|
||||
*/
|
||||
export default function dbHandler({ query, values, database, }: Param): Promise<any[] | object | null>;
|
||||
export default function dbHandler({ query, values, }: Param): Promise<any[] | object | null>;
|
||||
export {};
|
||||
|
||||
+6
-52
@@ -15,56 +15,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = dbHandler;
|
||||
const fs_1 = __importDefault(require("fs"));
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const serverless_mysql_1 = __importDefault(require("serverless-mysql"));
|
||||
const grabDbSSL_1 = __importDefault(require("../../utils/backend/grabDbSSL"));
|
||||
let connection = (0, serverless_mysql_1.default)({
|
||||
config: {
|
||||
host: process.env.DSQL_DB_HOST,
|
||||
user: process.env.DSQL_DB_USERNAME,
|
||||
password: process.env.DSQL_DB_PASSWORD,
|
||||
database: process.env.DSQL_DB_NAME,
|
||||
charset: "utf8mb4",
|
||||
ssl: (0, grabDbSSL_1.default)(),
|
||||
},
|
||||
});
|
||||
/**
|
||||
* # Main DB Handler Function
|
||||
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
|
||||
*/
|
||||
function dbHandler(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ query, values, database, }) {
|
||||
/**
|
||||
* Switch Database
|
||||
*
|
||||
* @description If a database is provided, switch to it
|
||||
*/
|
||||
let isDbCorrect = true;
|
||||
if (database) {
|
||||
connection = (0, serverless_mysql_1.default)({
|
||||
config: {
|
||||
host: process.env.DSQL_DB_HOST,
|
||||
user: process.env.DSQL_DB_USERNAME,
|
||||
password: process.env.DSQL_DB_PASSWORD,
|
||||
database: database,
|
||||
charset: "utf8mb4",
|
||||
ssl: (0, grabDbSSL_1.default)(),
|
||||
},
|
||||
});
|
||||
}
|
||||
if (!isDbCorrect) {
|
||||
console.log("Shell Db Handler ERROR in switching Database! Operation Failed!");
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Declare variables
|
||||
*
|
||||
* @description Declare "results" variable
|
||||
*/
|
||||
return __awaiter(this, arguments, void 0, function* ({ query, values, }) {
|
||||
let connection = global.DSQL_DB_CONN;
|
||||
let results;
|
||||
/**
|
||||
* Fetch from db
|
||||
*
|
||||
* @description Fetch data from db if no cache
|
||||
*/
|
||||
try {
|
||||
if (query && values) {
|
||||
results = yield connection.query(query, values);
|
||||
@@ -72,8 +30,6 @@ function dbHandler(_a) {
|
||||
else {
|
||||
results = yield connection.query(query);
|
||||
}
|
||||
/** ********************* Clean up */
|
||||
yield connection.end();
|
||||
}
|
||||
catch ( /** @type {any} */error) {
|
||||
if (process.env.FIRST_RUN) {
|
||||
@@ -85,11 +41,9 @@ function dbHandler(_a) {
|
||||
fs_1.default.appendFileSync(path_1.default.resolve(__dirname, "../.tmp/dbErrorLogs.txt"), JSON.stringify(error, null, 4) + "\n" + Date() + "\n\n\n", "utf8");
|
||||
results = null;
|
||||
}
|
||||
/**
|
||||
* Return results
|
||||
*
|
||||
* @description Return results add to cache if "req" param is passed
|
||||
*/
|
||||
finally {
|
||||
yield (connection === null || connection === void 0 ? void 0 : connection.end());
|
||||
}
|
||||
if (results) {
|
||||
return JSON.parse(JSON.stringify(results));
|
||||
}
|
||||
|
||||
+12
-24
@@ -55,22 +55,21 @@ function updateTable(_a) {
|
||||
/**
|
||||
* @description Push the query initial value
|
||||
*/
|
||||
updateTableQueryArray.push(`ALTER TABLE \`${tableName}\``);
|
||||
updateTableQueryArray.push(`ALTER TABLE \`${dbFullName}\`.\`${tableName}\``);
|
||||
if (childDb) {
|
||||
try {
|
||||
if (!recordedDbEntry) {
|
||||
throw new Error("Recorded Db entry not found!");
|
||||
}
|
||||
const existingTable = yield (0, varDatabaseDbHandler_1.default)({
|
||||
database: "datasquirel",
|
||||
queryString: `SELECT * FROM user_database_tables WHERE db_id = ? AND table_slug = ?`,
|
||||
queryString: `SELECT * FROM datasquirel.user_database_tables WHERE db_id = ? AND table_slug = ?`,
|
||||
queryValuesArray: [recordedDbEntry.id, tableName],
|
||||
});
|
||||
/** @type {import("../../types").MYSQL_user_database_tables_table_def} */
|
||||
const table = existingTable === null || existingTable === void 0 ? void 0 : existingTable[0];
|
||||
if (!(table === null || table === void 0 ? void 0 : table.id)) {
|
||||
const newTableEntry = yield (0, dbHandler_1.default)({
|
||||
query: `INSERT INTO user_database_tables SET ?`,
|
||||
query: `INSERT INTO datasquirel.user_database_tables SET ?`,
|
||||
values: {
|
||||
user_id: recordedDbEntry.user_id,
|
||||
db_id: recordedDbEntry.id,
|
||||
@@ -85,7 +84,6 @@ function updateTable(_a) {
|
||||
date_updated: Date(),
|
||||
date_updated_code: Date.now(),
|
||||
},
|
||||
database: "datasquirel",
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -96,16 +94,14 @@ function updateTable(_a) {
|
||||
* @description All indexes from MYSQL db
|
||||
*/ // @ts-ignore
|
||||
const allExistingIndexes = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `SHOW INDEXES FROM \`${tableName}\``,
|
||||
database: dbFullName,
|
||||
queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``,
|
||||
});
|
||||
/**
|
||||
* @type {import("../../types").DSQL_MYSQL_SHOW_COLUMNS_Type[]}
|
||||
* @description All columns from MYSQL db
|
||||
*/ // @ts-ignore
|
||||
const allExistingColumns = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `SHOW COLUMNS FROM \`${tableName}\``,
|
||||
database: dbFullName,
|
||||
queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``,
|
||||
});
|
||||
////////////////////////////////////////
|
||||
/**
|
||||
@@ -133,8 +129,7 @@ function updateTable(_a) {
|
||||
existingEntry[0].fieldName) {
|
||||
updatedColumnsArray.push(existingEntry[0].fieldName);
|
||||
const renameColumn = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `ALTER TABLE ${tableName} RENAME COLUMN \`${existingEntry[0].originName}\` TO \`${existingEntry[0].fieldName}\``,
|
||||
database: dbFullName,
|
||||
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` RENAME COLUMN \`${existingEntry[0].originName}\` TO \`${existingEntry[0].fieldName}\``,
|
||||
});
|
||||
console.log(`Column Renamed from "${existingEntry[0].originName}" to "${existingEntry[0].fieldName}"`);
|
||||
/**
|
||||
@@ -167,8 +162,7 @@ function updateTable(_a) {
|
||||
}
|
||||
else {
|
||||
yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `ALTER TABLE ${tableName} DROP COLUMN \`${Field}\``,
|
||||
database: dbFullName,
|
||||
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP COLUMN \`${Field}\``,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -196,8 +190,7 @@ function updateTable(_a) {
|
||||
* present in the datasquirel DB schema
|
||||
*/
|
||||
yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `ALTER TABLE ${tableName} DROP INDEX \`${Key_name}\``,
|
||||
database: dbFullName,
|
||||
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${Key_name}\``,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -227,8 +220,7 @@ function updateTable(_a) {
|
||||
* doesn't exist in MYSQL db
|
||||
*/
|
||||
yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `CREATE${(indexType === null || indexType === void 0 ? void 0 : indexType.match(/fullText/i)) ? " FULLTEXT" : ""} INDEX \`${alias}\` ON ${tableName}(${indexTableFields === null || indexTableFields === void 0 ? void 0 : indexTableFields.map((nm) => nm.value).map((nm) => `\`${nm}\``).join(",")}) COMMENT 'schema_index'`,
|
||||
database: dbFullName,
|
||||
queryString: `CREATE${(indexType === null || indexType === void 0 ? void 0 : indexType.match(/fullText/i)) ? " FULLTEXT" : ""} INDEX \`${alias}\` ON \`${dbFullName}\`.\`${tableName}\`(${indexTableFields === null || indexTableFields === void 0 ? void 0 : indexTableFields.map((nm) => nm.value).map((nm) => `\`${nm}\``).join(",")}) COMMENT 'schema_index'`,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -242,10 +234,9 @@ function updateTable(_a) {
|
||||
/**
|
||||
* @description All MSQL Foreign Keys
|
||||
* @type {import("../../types").DSQL_MYSQL_FOREIGN_KEYS_Type[] | null}
|
||||
*/ // @ts-ignore
|
||||
*/
|
||||
const allForeignKeys = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND CONSTRAINT_TYPE='FOREIGN KEY'`,
|
||||
database: dbFullName,
|
||||
});
|
||||
if (allForeignKeys) {
|
||||
for (let c = 0; c < allForeignKeys.length; c++) {
|
||||
@@ -260,8 +251,7 @@ function updateTable(_a) {
|
||||
* Foreign keys
|
||||
*/
|
||||
const dropForeignKey = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `ALTER TABLE ${tableName} DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``,
|
||||
database: dbFullName,
|
||||
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -370,9 +360,8 @@ function updateTable(_a) {
|
||||
const { destinationTableName, destinationTableColumnName, cascadeDelete, cascadeUpdate, foreignKeyName, } = foreignKey;
|
||||
const foreinKeyText = `ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${fieldName}\`) REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)${cascadeDelete ? " ON DELETE CASCADE" : ""}${cascadeUpdate ? " ON UPDATE CASCADE" : ""}`;
|
||||
// const foreinKeyText = `ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (${fieldName}) REFERENCES ${destinationTableName}(${destinationTableColumnName})${cascadeDelete ? " ON DELETE CASCADE" : ""}${cascadeUpdate ? " ON UPDATE CASCADE" : ""}` + ",";
|
||||
const finalQueryString = `ALTER TABLE \`${tableName}\` ${foreinKeyText}`;
|
||||
const finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` ${foreinKeyText}`;
|
||||
const addForeignKey = yield (0, varDatabaseDbHandler_1.default)({
|
||||
database: dbFullName,
|
||||
queryString: finalQueryString,
|
||||
});
|
||||
if (!(addForeignKey === null || addForeignKey === void 0 ? void 0 : addForeignKey.serverStatus)) {
|
||||
@@ -397,7 +386,6 @@ function updateTable(_a) {
|
||||
if (updateTableQueryArray.length > 1) {
|
||||
const updateTable = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: updateTableQuery,
|
||||
database: dbFullName,
|
||||
});
|
||||
return updateTable;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
import { DSQL_TableSchemaType } from "../../types";
|
||||
type Param = {
|
||||
queryString: string;
|
||||
queryValuesArray?: string[];
|
||||
database?: string;
|
||||
tableSchema?: DSQL_TableSchemaType;
|
||||
};
|
||||
/**
|
||||
* # DB handler for specific database
|
||||
*/
|
||||
export default function varDatabaseDbHandler({ queryString, queryValuesArray, database, tableSchema, }: Param): Promise<any>;
|
||||
export default function varDatabaseDbHandler({ queryString, queryValuesArray, }: Param): Promise<any>;
|
||||
export {};
|
||||
|
||||
+1
-3
@@ -18,7 +18,7 @@ const dbHandler_1 = __importDefault(require("./dbHandler"));
|
||||
* # DB handler for specific database
|
||||
*/
|
||||
function varDatabaseDbHandler(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, database, tableSchema, }) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ queryString, queryValuesArray, }) {
|
||||
/**
|
||||
* Declare variables
|
||||
*
|
||||
@@ -38,13 +38,11 @@ function varDatabaseDbHandler(_a) {
|
||||
results = yield (0, dbHandler_1.default)({
|
||||
query: queryString,
|
||||
values: queryValuesArray,
|
||||
database,
|
||||
});
|
||||
}
|
||||
else {
|
||||
results = yield (0, dbHandler_1.default)({
|
||||
query: queryString,
|
||||
database,
|
||||
});
|
||||
}
|
||||
////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user