Updates
This commit is contained in:
@@ -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];
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user