Updates
This commit is contained in:
@@ -3,8 +3,14 @@ import isVectorField from "./is-vector-field";
|
||||
import mapDataType from "./map-data-types";
|
||||
import MariaDBQuoteGen from "./mariadb-quote-gen";
|
||||
|
||||
export type BuildColumnDefinitionOptions = {
|
||||
/** UNIQUE is managed by syncUniqueConstraints on existing tables */
|
||||
omitUnique?: boolean;
|
||||
};
|
||||
|
||||
export default function buildColumnDefinition(
|
||||
field: BUN_MARIADB_FieldSchemaType,
|
||||
options: BuildColumnDefinitionOptions = {},
|
||||
): string {
|
||||
if (!field.fieldName) {
|
||||
throw new Error("Field name is required");
|
||||
@@ -29,7 +35,12 @@ export default function buildColumnDefinition(
|
||||
}
|
||||
|
||||
// VECTOR columns cannot be UNIQUE in the usual sense
|
||||
if (field.unique && !field.primaryKey && !isVectorField(field)) {
|
||||
if (
|
||||
!options.omitUnique &&
|
||||
field.unique &&
|
||||
!field.primaryKey &&
|
||||
!isVectorField(field)
|
||||
) {
|
||||
parts.push("UNIQUE");
|
||||
}
|
||||
|
||||
@@ -51,3 +62,12 @@ export default function buildColumnDefinition(
|
||||
|
||||
return parts.join(" ");
|
||||
}
|
||||
|
||||
/** Whether schema field requires NOT NULL */
|
||||
export function fieldRequiresNotNull(
|
||||
field: BUN_MARIADB_FieldSchemaType,
|
||||
): boolean {
|
||||
return Boolean(
|
||||
field.notNullValue || field.primaryKey || isVectorField(field),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user