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,9 +1,9 @@
import varDatabaseDbHandler from "../utils/varDatabaseDbHandler";
import { DSQL_DatabaseSchemaType, PostInsertReturn } from "../../types";
import { DSQL_DatabaseSchemaType } from "../../types";
import { DSQL_DATASQUIREL_USER_DATABASES } from "../../types/dsql";
import numberfy from "../../utils/numberfy";
import addDbEntry from "../../functions/backend/db/addDbEntry";
import updateDbEntry from "../../functions/backend/db/updateDbEntry";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
userId?: number | string | null;
@@ -35,10 +35,10 @@ export default async function checkDbRecordCreateDbSchema({
} = dbSchema;
let recordedDbEntryArray = userId
? await varDatabaseDbHandler({
queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`,
queryValuesArray: [dbFullName || "NULL"],
})
? ((await dbHandler({
query: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`,
values: [dbFullName || "NULL"],
})) as any[] | null)
: undefined;
let recordedDbEntry: DSQL_DATASQUIREL_USER_DATABASES | undefined =
@@ -65,10 +65,10 @@ export default async function checkDbRecordCreateDbSchema({
});
if (newDbEntry.payload?.insertId) {
recordedDbEntryArray = await varDatabaseDbHandler({
queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`,
queryValuesArray: [dbFullName || "NULL"],
});
recordedDbEntryArray = (await dbHandler({
query: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`,
values: [dbFullName || "NULL"],
})) as any[] | null;
recordedDbEntry = recordedDbEntryArray?.[0];
}
} else if (recordedDbEntry?.id) {
@@ -82,11 +82,8 @@ export default async function checkDbRecordCreateDbSchema({
}
return recordedDbEntry;
} catch (error) {
global.ERROR_CALLBACK?.(
`Error Checking DB Record on Creating Schema`,
error as Error
);
} catch (error: any) {
console.log("Error =\u003e", error.message);
return undefined;
}
}
@@ -1,4 +1,3 @@
import varDatabaseDbHandler from "../utils/varDatabaseDbHandler";
import {
DSQL_DatabaseSchemaType,
DSQL_TableSchemaType,
@@ -12,6 +11,7 @@ import {
import sqlGenerator from "../../functions/dsql/sql/sql-generator";
import numberfy from "../../utils/numberfy";
import addDbEntry from "../../functions/backend/db/addDbEntry";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
userId?: number | string | null;
@@ -54,10 +54,10 @@ export default async function checkTableRecordCreateDbSchema({
});
let recordedTableEntryArray = userId
? await varDatabaseDbHandler({
queryString: queryObj?.string || "",
queryValuesArray: queryObj?.values,
})
? ((await dbHandler({
query: queryObj?.string || "",
values: queryObj?.values,
})) as any[] | null)
: undefined;
let recordedTableEntry:
@@ -98,21 +98,18 @@ export default async function checkTableRecordCreateDbSchema({
});
if (newTableRecordEntry.payload?.insertId) {
recordedTableEntryArray = await varDatabaseDbHandler({
queryString: queryObj?.string || "",
queryValuesArray: queryObj?.values,
});
recordedTableEntryArray = (await dbHandler({
query: queryObj?.string || "",
values: queryObj?.values,
})) as any[] | null;
recordedTableEntry = recordedTableEntryArray?.[0];
}
}
return recordedTableEntry;
} catch (error) {
global.ERROR_CALLBACK?.(
`Error Checking Table Record on Creating Schema`,
error as Error
);
} catch (error: any) {
console.log("Error =\u003e", error.message);
return undefined;
}
}
@@ -1,9 +1,9 @@
import varDatabaseDbHandler from "../utils/varDatabaseDbHandler";
import {
DSQL_IndexSchemaType,
DSQL_MYSQL_SHOW_INDEXES_Type,
} from "../../types";
import grabDSQLSchemaIndexComment from "../utils/grab-dsql-schema-index-comment";
import dbHandler from "../../functions/backend/dbHandler";
type Param = {
tableName: string;
@@ -22,10 +22,9 @@ export default async function handleIndexescreateDbFromSchema({
tableName,
indexes,
}: Param) {
const allExistingIndexes: DSQL_MYSQL_SHOW_INDEXES_Type[] =
await varDatabaseDbHandler({
queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``,
});
const allExistingIndexes = (await dbHandler({
query: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``,
})) as DSQL_MYSQL_SHOW_INDEXES_Type[];
for (let g = 0; g < indexes.length; g++) {
const { indexType, indexName, indexTableFields, alias } = indexes[g];
@@ -56,12 +55,11 @@ export default async function handleIndexescreateDbFromSchema({
","
)}) COMMENT '${grabDSQLSchemaIndexComment()} ${indexName}'`;
const addIndex = await varDatabaseDbHandler({ queryString });
const addIndex = await dbHandler({ query: queryString });
}
}
const allExistingIndexesAfterUpdate: DSQL_MYSQL_SHOW_INDEXES_Type[] =
await varDatabaseDbHandler({
queryString: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``,
});
const allExistingIndexesAfterUpdate = (await dbHandler({
query: `SHOW INDEXES FROM \`${dbFullName}\`.\`${tableName}\``,
})) as DSQL_MYSQL_SHOW_INDEXES_Type[];
}
@@ -1,5 +1,3 @@
import noDatabaseDbHandler from "../utils/noDatabaseDbHandler";
import varDatabaseDbHandler from "../utils/varDatabaseDbHandler";
import createTable from "../utils/createTable";
import updateTable from "../utils/updateTable";
import { DSQL_DatabaseSchemaType } from "../../types";
@@ -64,19 +62,19 @@ export default async function createDbFromSchema({
console.log(`Handling database => ${dbFullName}`);
const dbCheck: any = await noDatabaseDbHandler(
`SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${dbFullName}'`
);
const dbCheck: any = await dbHandler({
query: `SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${dbFullName}'`,
});
if (!dbCheck?.[0]?.dbFullName) {
const newDatabase = await noDatabaseDbHandler(
`CREATE DATABASE IF NOT EXISTS \`${dbFullName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`
);
const newDatabase = await dbHandler({
query: `CREATE DATABASE IF NOT EXISTS \`${dbFullName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`,
});
}
const allTables: any = await noDatabaseDbHandler(
`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${dbFullName}'`
);
const allTables = (await dbHandler({
query: `SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${dbFullName}'`,
})) as any[] | undefined;
let recordedDbEntry = await checkDbRecordCreateDbSchema({
dbSchema: database,
@@ -84,59 +82,32 @@ export default async function createDbFromSchema({
isMain,
});
for (let tb = 0; tb < allTables.length; tb++) {
const { TABLE_NAME } = allTables[tb];
if (allTables?.length) {
for (let tb = 0; tb < allTables.length; tb++) {
const { TABLE_NAME } = allTables[tb];
const targetTableSchema = tables.find(
(_table) => _table.tableName === TABLE_NAME
);
/**
* @description Check if TABLE_NAME is part of the tables contained
* in the user schema JSON. If it's not, the table is either deleted
* or the table name has been recently changed
*/
if (!targetTableSchema) {
console.log(
`Dropping Table ${TABLE_NAME} from ${dbFullName}`
const targetTableSchema = tables.find(
(_table) => _table.tableName === TABLE_NAME
);
await varDatabaseDbHandler({
queryString: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``,
});
const deleteTableEntry = await dbHandler({
query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`,
values: [userId, dbSlug, TABLE_NAME],
});
/**
* @description Check if TABLE_NAME is part of the tables contained
* in the user schema JSON. If it's not, the table is either deleted
* or the table name has been recently changed
*/
if (!targetTableSchema) {
console.log(
`Dropping Table ${TABLE_NAME} from ${dbFullName}`
);
await dbHandler({
query: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``,
});
// const oldTable = tables.find(
// (_table) =>
// _table.tableNameOld &&
// _table.tableNameOld === TABLE_NAME
// );
// /**
// * @description Check if this table has been recently renamed. Rename
// * table id true. Drop table if false
// */
// if (oldTable) {
// console.log("Renaming Table");
// await varDatabaseDbHandler({
// queryString: `RENAME TABLE \`${dbFullName}\`.\`${oldTable.tableNameOld}\` TO \`${oldTable.tableName}\``,
// });
// } else {
// console.log(
// `Dropping Table ${TABLE_NAME} from ${dbFullName}`
// );
// await varDatabaseDbHandler({
// queryString: `DROP TABLE \`${dbFullName}\`.\`${TABLE_NAME}\``,
// });
// const deleteTableEntry = await dbHandler({
// query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`,
// values: [userId, dbSlug, TABLE_NAME],
// });
// }
const deleteTableEntry = await dbHandler({
query: `DELETE FROM datasquirel.user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`,
values: [userId, dbSlug, TABLE_NAME],
});
}
}
}
@@ -156,8 +127,8 @@ export default async function createDbFromSchema({
* @description Check if table exists
* @type {any}
*/
const tableCheck: any = await varDatabaseDbHandler({
queryString: `
const tableCheck: any = await dbHandler({
query: `
SELECT EXISTS (
SELECT
TABLE_NAME
@@ -167,7 +138,7 @@ export default async function createDbFromSchema({
TABLE_SCHEMA = ? AND
TABLE_NAME = ?
) AS tableExists`,
queryValuesArray: [dbFullName, table.tableName],
values: [dbFullName, table.tableName],
});
if (tableCheck && tableCheck[0]?.tableExists > 0) {