Updates
This commit is contained in:
@@ -1,15 +1,29 @@
|
||||
import type { BUN_MARIADB_FieldSchemaType } from "../../types";
|
||||
import MariaDBQuoteGen from "./mariadb-quote-gen";
|
||||
|
||||
export function defaultForeignKeyName(
|
||||
tableName: string,
|
||||
fieldName: string,
|
||||
): string {
|
||||
return `fk_${tableName}_${fieldName}`;
|
||||
}
|
||||
|
||||
export function resolveForeignKeyName(
|
||||
field: BUN_MARIADB_FieldSchemaType,
|
||||
tableName: string,
|
||||
): string {
|
||||
const fieldName = field.fieldName || "column";
|
||||
return field.foreignKey?.foreignKeyName || defaultForeignKeyName(tableName, fieldName);
|
||||
}
|
||||
|
||||
export default function buildForeignKeyConstraint(
|
||||
field: BUN_MARIADB_FieldSchemaType,
|
||||
tableName: string,
|
||||
): string {
|
||||
const fk = field.foreignKey!;
|
||||
const constraintName = fk.foreignKeyName
|
||||
? `CONSTRAINT ${MariaDBQuoteGen(fk.foreignKeyName)} `
|
||||
: "";
|
||||
const constraintName = resolveForeignKeyName(field, tableName);
|
||||
|
||||
let constraint = `${constraintName}FOREIGN KEY (${MariaDBQuoteGen(field.fieldName!)}) REFERENCES ${MariaDBQuoteGen(fk.destinationTableName!)}(${MariaDBQuoteGen(fk.destinationTableColumnName!)})`;
|
||||
let constraint = `CONSTRAINT ${MariaDBQuoteGen(constraintName)} FOREIGN KEY (${MariaDBQuoteGen(field.fieldName!)}) REFERENCES ${MariaDBQuoteGen(fk.destinationTableName!)}(${MariaDBQuoteGen(fk.destinationTableColumnName!)})`;
|
||||
|
||||
if (fk.cascadeDelete) {
|
||||
constraint += " ON DELETE CASCADE";
|
||||
|
||||
Reference in New Issue
Block a user