Variable ddlExtensionConst
ddlExtension: ExtensionDescriptor<
{
boolean: {
columnType(
this: BooleanSchemaBuilder<any, any, any, any, any, any, any>,
type: string,
): BooleanSchemaBuilder<any, any, any, any, any, any, any>;
defaultTo(
this: BooleanSchemaBuilder<any, any, any, any, any, any, any>,
value: boolean,
): BooleanSchemaBuilder<any, any, any, any, any, any, any>;
index(
this: BooleanSchemaBuilder<any, any, any, any, any, any, any>,
name?: string,
): BooleanSchemaBuilder<any, any, any, any, any, any, any>;
unique(
this: BooleanSchemaBuilder<any, any, any, any, any, any, any>,
name?: string,
): BooleanSchemaBuilder<any, any, any, any, any, any, any>;
};
date: {
columnType(
this: DateSchemaBuilder<any, any, any, any, any>,
type: string,
): DateSchemaBuilder<any, any, any, any, any>;
dateOnly(
this: DateSchemaBuilder<any, any, any, any, any>,
): DateSchemaBuilder<any, any, any, any, any>;
defaultTo(
this: DateSchemaBuilder<any, any, any, any, any>,
value: "now",
): DateSchemaBuilder<any, any, any, any, any>;
defaultToRaw(
this: DateSchemaBuilder<any, any, any, any, any>,
expression: string,
): DateSchemaBuilder<any, any, any, any, any>;
index(
this: DateSchemaBuilder<any, any, any, any, any>,
name?: string,
): DateSchemaBuilder<any, any, any, any, any>;
rowVersion(
this: DateSchemaBuilder<any, any, any, any, any>,
): DateSchemaBuilder<any, any, any, any, any>;
timestamptz(
this: DateSchemaBuilder<any, any, any, any, any>,
): DateSchemaBuilder<any, any, any, any, any>;
};
number: {
bigint(
this: NumberSchemaBuilder<any, any, any, any, any>,
): NumberSchemaBuilder<any, any, any, any, any>;
columnType(
this: NumberSchemaBuilder<any, any, any, any, any>,
type: string,
): NumberSchemaBuilder<any, any, any, any, any>;
decimal(
this: NumberSchemaBuilder<any, any, any, any, any>,
precision: number,
scale: number,
): NumberSchemaBuilder<any, any, any, any, any>;
defaultTo(
this: NumberSchemaBuilder<any, any, any, any, any>,
value: number | "auto_increment",
): NumberSchemaBuilder<any, any, any, any, any>;
defaultToRaw(
this: NumberSchemaBuilder<any, any, any, any, any>,
expression: string,
): NumberSchemaBuilder<any, any, any, any, any>;
index(
this: NumberSchemaBuilder<any, any, any, any, any>,
name?: string,
): NumberSchemaBuilder<any, any, any, any, any>;
onDelete(
this: NumberSchemaBuilder<any, any, any, any, any>,
action: FKAction,
): NumberSchemaBuilder<any, any, any, any, any>;
onUpdate(
this: NumberSchemaBuilder<any, any, any, any, any>,
action: FKAction,
): NumberSchemaBuilder<any, any, any, any, any>;
references(
this: NumberSchemaBuilder<any, any, any, any, any>,
table: string,
column?: string,
): NumberSchemaBuilder<any, any, any, any, any>;
rowVersion(
this: NumberSchemaBuilder<any, any, any, any, any>,
opts?: { strategy?: "increment" | "manual" },
): NumberSchemaBuilder<any, any, any, any, any>;
smallint(
this: NumberSchemaBuilder<any, any, any, any, any>,
): NumberSchemaBuilder<any, any, any, any, any>;
unique(
this: NumberSchemaBuilder<any, any, any, any, any>,
name?: string,
): NumberSchemaBuilder<any, any, any, any, any>;
};
object: {
afterInsert(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
fn: Function,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
beforeDelete(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
fn: Function,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
beforeInsert(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
fn: Function,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
beforeUpdate(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
fn: Function,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
belongsTo(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
name: string,
opts: { foreignKey: any; schema: any },
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
belongsToMany(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
name: string,
opts: {
schema: any;
through: { foreignKey: string; localKey: string; table: string };
},
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
columnType(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
type: string,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
defaultScope(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
fn: Function,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasCheck(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
sql: string,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasIndex(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
columns: string[],
opts?: { name?: string; unique?: boolean },
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasMany(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
name: string,
opts: { foreignKey: any; schema: any },
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasOne(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
name: string,
opts: { foreignKey: any; schema: any },
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasRawColumn(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
name: string,
definition: string,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasRawIndex(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
sql: string,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasTimestamps(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
opts?: { createdAt?: string; updatedAt?: string },
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
hasUnique(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
columns: string[],
name?: string,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
json(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
jsonb(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
projection<
TProperties extends
Record<string, SchemaBuilder<any, any, any, any, any>>,
const N extends string,
const TKey extends string,
>(
this: ObjectSchemaBuilder<TProperties, any, any, any, any, any, any>,
name: N,
...columns: readonly (
| TKey
| (
(
t: PropertyDescriptorTree<
ObjectSchemaBuilder<TProperties, any, any, any, any, any, any>,
ObjectSchemaBuilder<TProperties, any, any, any, any, any, any>,
>,
) => PropertyDescriptor<any, any, any, TKey>
)
)[],
): ObjectSchemaBuilder<TProperties, any, any, any, any, any, any> & {
__cleverbrush_extra_type_brand__?: { [P in string]: readonly TKey[] };
};
scope<N extends string>(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
name: N,
fn: Function,
): ObjectSchemaBuilder<any, any, any, any, any, any, any> & {
__cleverbrush_method_literal_brand__?: N;
};
softDelete(
this: ObjectSchemaBuilder<any, any, any, any, any, any, any>,
opts?: { column?: string },
): ObjectSchemaBuilder<any, any, any, any, any, any, any>;
};
string: {
asUuid(
this: StringSchemaBuilder<any, any, any, any, any>,
): StringSchemaBuilder<any, any, any, any, any>;
check(
this: StringSchemaBuilder<any, any, any, any, any>,
sql: string,
): StringSchemaBuilder<any, any, any, any, any>;
citext(
this: StringSchemaBuilder<any, any, any, any, any>,
): StringSchemaBuilder<any, any, any, any, any>;
columnType(
this: StringSchemaBuilder<any, any, any, any, any>,
type: string,
): StringSchemaBuilder<any, any, any, any, any>;
defaultTo(
this: StringSchemaBuilder<any, any, any, any, any>,
value: string,
): StringSchemaBuilder<any, any, any, any, any>;
defaultToRaw(
this: StringSchemaBuilder<any, any, any, any, any>,
expression: string,
): StringSchemaBuilder<any, any, any, any, any>;
index(
this: StringSchemaBuilder<any, any, any, any, any>,
name?: string,
): StringSchemaBuilder<any, any, any, any, any>;
jsonb(
this: StringSchemaBuilder<any, any, any, any, any>,
): StringSchemaBuilder<any, any, any, any, any>;
onDelete(
this: StringSchemaBuilder<any, any, any, any, any>,
action: FKAction,
): StringSchemaBuilder<any, any, any, any, any>;
onUpdate(
this: StringSchemaBuilder<any, any, any, any, any>,
action: FKAction,
): StringSchemaBuilder<any, any, any, any, any>;
references(
this: StringSchemaBuilder<any, any, any, any, any>,
table: string,
column?: string,
): StringSchemaBuilder<any, any, any, any, any>;
rowVersion(
this: StringSchemaBuilder<any, any, any, any, any>,
): StringSchemaBuilder<any, any, any, any, any>;
text(
this: StringSchemaBuilder<any, any, any, any, any>,
): StringSchemaBuilder<any, any, any, any, any>;
tsvector(
this: StringSchemaBuilder<any, any, any, any, any>,
): StringSchemaBuilder<any, any, any, any, any>;
unique(
this: StringSchemaBuilder<any, any, any, any, any>,
name?: string,
): StringSchemaBuilder<any, any, any, any, any>;
};
},
> = ...
DDL and ORM extension that adds database DDL metadata, relationship definitions, and ORM conveniences to schema builders.
Column-level methods:
.primaryKey(),.references(),.unique(),.index(),.defaultTo(),.columnType(),.check(),.defaultToRaw().Object-level methods:
.hasIndex(),.hasUnique(),.hasCheck(),.hasPrimaryKey(),.hasRawColumn(),.hasRawIndex(),.hasMany(),.hasOne(),.belongsTo(),.belongsToMany(),.hasTimestamps(),.softDelete(),.scope(),.defaultScope(),.beforeInsert(),.afterInsert(),.beforeUpdate(),.beforeDelete().