25 lines
1.4 KiB
JavaScript
25 lines
1.4 KiB
JavaScript
import varDatabaseDbHandler from "./varDatabaseDbHandler";
|
|
/**
|
|
* # Update table function
|
|
*/
|
|
export default async function handleTableForeignKey({ dbFullName, tableName, foreignKey, errorLogs, fieldName, }) {
|
|
const { destinationTableName, destinationTableColumnName, cascadeDelete, cascadeUpdate, foreignKeyName, } = foreignKey;
|
|
let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\``;
|
|
finalQueryString += ` ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${fieldName}\`)`;
|
|
finalQueryString += ` REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)`;
|
|
if (cascadeDelete)
|
|
finalQueryString += ` ON DELETE CASCADE`;
|
|
if (cascadeUpdate)
|
|
finalQueryString += ` ON UPDATE CASCADE`;
|
|
// let foreinKeyText = `ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${destinationTableColumnType}\`) REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)${
|
|
// cascadeDelete ? " ON DELETE CASCADE" : ""
|
|
// }${cascadeUpdate ? " ON UPDATE CASCADE" : ""}`;
|
|
// let finalQueryString = `ALTER TABLE \`${dbFullName}\`.\`${tableName}\` ${foreinKeyText}`;
|
|
const addForeignKey = await varDatabaseDbHandler({
|
|
queryString: finalQueryString,
|
|
});
|
|
if (!(addForeignKey === null || addForeignKey === void 0 ? void 0 : addForeignKey.serverStatus)) {
|
|
errorLogs === null || errorLogs === void 0 ? void 0 : errorLogs.push(addForeignKey);
|
|
}
|
|
}
|