This commit is contained in:
Benjamin Toby
2025-07-09 20:30:45 +01:00
parent ccb5605b58
commit c37d105dee
264 changed files with 2389 additions and 3743 deletions
@@ -1,4 +1,3 @@
import varDatabaseDbHandler from "./varDatabaseDbHandler";
import { DSQL_TableSchemaType } from "../../types";
import {
DSQL_DATASQUIREL_USER_DATABASE_TABLES,
@@ -10,6 +9,7 @@ import addDbEntry from "../../functions/backend/db/addDbEntry";
import slugToNormalText from "../../utils/slug-to-normal-text";
import debugLog from "../../utils/logging/debug-log";
import _ from "lodash";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
tableSchema?: DSQL_TableSchemaType;
@@ -68,13 +68,13 @@ export default async function ({
active_data: newTableSchema.updateData ? 1 : 0,
};
const existingTable = await varDatabaseDbHandler({
queryString: `SELECT * FROM ${targetDatabase}.${targetTableName} WHERE db_id = ? AND table_slug = ?`,
queryValuesArray: [
const existingTable = (await dbHandler({
query: `SELECT * FROM ${targetDatabase}.${targetTableName} WHERE db_id = ? AND table_slug = ?`,
values: [
String(recordedDbEntry.id),
String(newTableSchema.tableName),
],
});
})) as any;
const table: DSQL_DATASQUIREL_USER_DATABASE_TABLES = existingTable?.[0];
+3 -3
View File
@@ -1,10 +1,10 @@
import varDatabaseDbHandler from "./varDatabaseDbHandler";
import generateColumnDescription from "./generateColumnDescription";
import supplementTable from "./supplementTable";
import { DSQL_FieldSchemaType, DSQL_TableSchemaType } from "../../types";
import { DSQL_DATASQUIREL_USER_DATABASES } from "../../types/dsql";
import handleTableForeignKey from "./handle-table-foreign-key";
import createTableHandleTableRecord from "./create-table-handle-table-record";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
dbFullName: string;
@@ -68,8 +68,8 @@ export default async function createTable({
const createTableQuery = createTableQueryArray.join("\n");
const newTable = await varDatabaseDbHandler({
queryString: createTableQuery,
const newTable = await dbHandler({
query: createTableQuery,
});
for (let i = 0; i < finalTable.length; i++) {
@@ -1,5 +1,5 @@
import grabSQLKeyName from "../../utils/grab-sql-key-name";
import varDatabaseDbHandler from "./varDatabaseDbHandler";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
dbFullName: string;
@@ -29,11 +29,11 @@ export default async function dropAllForeignKeys({
// });
// }
const foreignKeys = await varDatabaseDbHandler({
queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Key_name LIKE '${grabSQLKeyName(
const foreignKeys = (await dbHandler({
query: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Key_name LIKE '${grabSQLKeyName(
{ type: "foreign_key" }
)}%'`,
});
})) as any;
for (const fk of foreignKeys) {
if (
@@ -41,8 +41,8 @@ export default async function dropAllForeignKeys({
new RegExp(grabSQLKeyName({ type: "foreign_key" }))
)
) {
await varDatabaseDbHandler({
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${fk.Key_name}\`
await dbHandler({
query: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${fk.Key_name}\`
`,
});
}
@@ -1,5 +1,5 @@
import varDatabaseDbHandler from "./varDatabaseDbHandler";
import { DSQL_ForeignKeyType } from "../../types";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
dbFullName: string;
@@ -41,9 +41,9 @@ export default async function handleTableForeignKey({
// let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` ${foreinKeyText}`;
const addForeignKey = await varDatabaseDbHandler({
queryString: finalQueryString,
});
const addForeignKey = (await dbHandler({
query: finalQueryString,
})) as any;
if (!addForeignKey?.serverStatus) {
errorLogs?.push(addForeignKey);
@@ -1,19 +0,0 @@
import dbHandler from "../../functions/backend/dbHandler";
export default async function noDatabaseDbHandler(
queryString: string
): Promise<any> {
let results;
try {
results = await dbHandler({ query: queryString });
} catch (error: any) {
global.ERROR_CALLBACK?.(`No DB Handler Error`, error as Error);
}
if (results) {
return results;
} else {
return null;
}
}
+45 -48
View File
@@ -1,5 +1,3 @@
import varDatabaseDbHandler from "./varDatabaseDbHandler";
import generateColumnDescription from "./generateColumnDescription";
import {
DSQL_DatabaseSchemaType,
@@ -19,6 +17,7 @@ import handleIndexescreateDbFromSchema from "../createDbFromSchema/handle-indexe
import _ from "lodash";
import { writeUpdatedDbSchema } from "../createDbFromSchema/grab-required-database-schemas";
import normalizeText from "../../utils/normalize-text";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
dbFullName: string;
@@ -105,30 +104,31 @@ export default async function updateTable({
* @description Iterate through each table index(if available)
* and perform operations
*/
const allExistingIndexes: DSQL_MYSQL_SHOW_INDEXES_Type[] =
await varDatabaseDbHandler({
queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Index_comment LIKE '%schema_index%'`,
});
const allExistingIndexes = (await dbHandler({
query: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\` WHERE Index_comment LIKE '%schema_index%'`,
})) as DSQL_MYSQL_SHOW_INDEXES_Type[] | null;
for (let f = 0; f < allExistingIndexes.length; f++) {
const { Key_name } = allExistingIndexes[f];
if (allExistingIndexes) {
for (let f = 0; f < allExistingIndexes.length; f++) {
const { Key_name } = allExistingIndexes[f];
try {
const existingKeyInSchema = tableIndexes?.find(
(indexObject) => indexObject.alias === Key_name
);
if (!existingKeyInSchema)
throw new Error(
`This Index(${Key_name}) Has been Deleted!`
try {
const existingKeyInSchema = tableIndexes?.find(
(indexObject) => indexObject.alias === Key_name
);
} catch (error) {
/**
* @description Drop Index: This happens when the MYSQL index is not
* present in the datasquirel DB schema
*/
await varDatabaseDbHandler({
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${Key_name}\``,
});
if (!existingKeyInSchema)
throw new Error(
`This Index(${Key_name}) Has been Deleted!`
);
} catch (error) {
/**
* @description Drop Index: This happens when the MYSQL index is not
* present in the datasquirel DB schema
*/
await dbHandler({
query: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${Key_name}\``,
});
}
}
}
@@ -152,10 +152,9 @@ export default async function updateTable({
* @description Iterate through each datasquirel schema
* table index(if available), and perform operations
*/
const allForeignKeys: DSQL_MYSQL_FOREIGN_KEYS_Type[] | null =
await varDatabaseDbHandler({
queryString: `SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND CONSTRAINT_TYPE='FOREIGN KEY'`,
});
const allForeignKeys = (await dbHandler({
query: `SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND CONSTRAINT_TYPE='FOREIGN KEY'`,
})) as DSQL_MYSQL_FOREIGN_KEYS_Type[] | null;
if (allForeignKeys) {
for (let c = 0; c < allForeignKeys.length; c++) {
@@ -170,8 +169,8 @@ export default async function updateTable({
* @description Drop all foreign Keys to avoid MYSQL errors when adding/updating
* Foreign keys
*/
const dropForeignKey = await varDatabaseDbHandler({
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``,
await dbHandler({
query: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``,
});
}
}
@@ -182,19 +181,17 @@ export default async function updateTable({
* @description Find all existing unique field constraints
* and remove them
*/
const allUniqueConstraints: DSQL_MYSQL_FOREIGN_KEYS_Type[] | null =
await varDatabaseDbHandler({
queryString:
normalizeText(`SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS \
const allUniqueConstraints = (await dbHandler({
query: normalizeText(`SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS \
WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND \
CONSTRAINT_TYPE='UNIQUE'`),
});
})) as DSQL_MYSQL_FOREIGN_KEYS_Type[] | null;
if (allUniqueConstraints) {
for (let c = 0; c < allUniqueConstraints.length; c++) {
const { CONSTRAINT_NAME } = allUniqueConstraints[c];
const dropUniqueConstraint = await varDatabaseDbHandler({
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${CONSTRAINT_NAME}\``,
await dbHandler({
query: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP INDEX \`${CONSTRAINT_NAME}\``,
});
}
}
@@ -205,9 +202,9 @@ export default async function updateTable({
* @description Now handle all fields/columns
*/
let allExistingColumns: DSQL_MYSQL_SHOW_COLUMNS_Type[] =
await varDatabaseDbHandler({
queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``,
});
(await dbHandler({
query: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``,
})) as DSQL_MYSQL_SHOW_COLUMNS_Type[];
/**
* @type {string[]}
@@ -239,8 +236,8 @@ export default async function updateTable({
if (existingEntry.updatedField && existingEntry.fieldName) {
updatedColumnsArray.push(existingEntry.fieldName);
const renameColumn = await varDatabaseDbHandler({
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` RENAME COLUMN \`${existingEntry.originName}\` TO \`${existingEntry.fieldName}\``,
await dbHandler({
query: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` RENAME COLUMN \`${existingEntry.originName}\` TO \`${existingEntry.fieldName}\``,
});
console.log(
@@ -284,9 +281,9 @@ export default async function updateTable({
});
}
allExistingColumns = await varDatabaseDbHandler({
queryString: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``,
});
allExistingColumns = (await dbHandler({
query: `SHOW COLUMNS FROM \`${dbFullName}\`.\`${tableName}\``,
})) as DSQL_MYSQL_SHOW_COLUMNS_Type[];
} catch (error: any) {
console.log("Update table error =>", error.message);
}
@@ -300,8 +297,8 @@ export default async function updateTable({
////////////////////////////////////////
} else {
await varDatabaseDbHandler({
queryString: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP COLUMN \`${Field}\``,
await dbHandler({
query: `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` DROP COLUMN \`${Field}\``,
});
}
}
@@ -386,8 +383,8 @@ export default async function updateTable({
* Alter directives like "ADD COLUMN" or "MODIFY COLUMN"
*/
if (updateTableQueryArray.length > 1) {
const updateTable = await varDatabaseDbHandler({
queryString: updateTableQuery,
const updateTable = await dbHandler({
query: updateTableQuery,
});
/**
@@ -1,57 +0,0 @@
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
queryString: string;
queryValuesArray?: string[];
};
/**
* # DB handler for specific database
*/
export default async function varDatabaseDbHandler({
queryString,
queryValuesArray,
}: Param): Promise<any> {
/**
* Declare variables
*
* @description Declare "results" variable
*/
let results;
/**
* Fetch from db
*
* @description Fetch data from db if no cache
*/
try {
if (
queryString &&
queryValuesArray &&
Array.isArray(queryValuesArray) &&
queryValuesArray[0]
) {
results = await dbHandler({
query: queryString,
values: queryValuesArray,
});
} else {
results = await dbHandler({
query: queryString,
});
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
} catch (/** @type {any} */ error: any) {
console.log("Shell Vardb Error =>", error.message);
}
/**
* Return results
*
* @description Return results add to cache if "req" param is passed
*/
return results;
}