durcno 1.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +56 -0
- package/dist/bin.cjs +13522 -0
- package/dist/src/_virtual/_rolldown/runtime.mjs +28 -0
- package/dist/src/cli/helpers.mjs +16 -0
- package/dist/src/columns/bigint.d.mts +19 -0
- package/dist/src/columns/bigint.mjs +32 -0
- package/dist/src/columns/bigserial.d.mts +24 -0
- package/dist/src/columns/bigserial.mjs +35 -0
- package/dist/src/columns/boolean.d.mts +19 -0
- package/dist/src/columns/boolean.mjs +31 -0
- package/dist/src/columns/bytea.d.mts +19 -0
- package/dist/src/columns/bytea.mjs +33 -0
- package/dist/src/columns/char.d.mts +32 -0
- package/dist/src/columns/char.mjs +44 -0
- package/dist/src/columns/cidr.d.mts +19 -0
- package/dist/src/columns/cidr.mjs +31 -0
- package/dist/src/columns/common.d.mts +233 -0
- package/dist/src/columns/common.mjs +276 -0
- package/dist/src/columns/date.d.mts +19 -0
- package/dist/src/columns/date.mjs +32 -0
- package/dist/src/columns/enum.d.mts +21 -0
- package/dist/src/columns/enum.mjs +35 -0
- package/dist/src/columns/inet.d.mts +19 -0
- package/dist/src/columns/inet.mjs +36 -0
- package/dist/src/columns/integer.d.mts +19 -0
- package/dist/src/columns/integer.mjs +32 -0
- package/dist/src/columns/json.d.mts +52 -0
- package/dist/src/columns/json.mjs +67 -0
- package/dist/src/columns/jsonb.d.mts +53 -0
- package/dist/src/columns/jsonb.mjs +68 -0
- package/dist/src/columns/macaddr.d.mts +19 -0
- package/dist/src/columns/macaddr.mjs +31 -0
- package/dist/src/columns/numeric.d.mts +42 -0
- package/dist/src/columns/numeric.mjs +57 -0
- package/dist/src/columns/postgis/geography/index.d.mts +18 -0
- package/dist/src/columns/postgis/geography/index.mjs +17 -0
- package/dist/src/columns/postgis/geography/linestring.d.mts +38 -0
- package/dist/src/columns/postgis/geography/linestring.mjs +70 -0
- package/dist/src/columns/postgis/geography/multilinestring.d.mts +39 -0
- package/dist/src/columns/postgis/geography/multilinestring.mjs +70 -0
- package/dist/src/columns/postgis/geography/multipoint.d.mts +38 -0
- package/dist/src/columns/postgis/geography/multipoint.mjs +70 -0
- package/dist/src/columns/postgis/geography/multipolygon.d.mts +40 -0
- package/dist/src/columns/postgis/geography/multipolygon.mjs +70 -0
- package/dist/src/columns/postgis/geography/point.d.mts +36 -0
- package/dist/src/columns/postgis/geography/point.mjs +69 -0
- package/dist/src/columns/postgis/geography/polygon.d.mts +39 -0
- package/dist/src/columns/postgis/geography/polygon.mjs +70 -0
- package/dist/src/columns/serial.d.mts +24 -0
- package/dist/src/columns/serial.mjs +35 -0
- package/dist/src/columns/smallint.d.mts +19 -0
- package/dist/src/columns/smallint.mjs +32 -0
- package/dist/src/columns/smallserial.d.mts +24 -0
- package/dist/src/columns/smallserial.mjs +35 -0
- package/dist/src/columns/text.d.mts +19 -0
- package/dist/src/columns/text.mjs +30 -0
- package/dist/src/columns/time.d.mts +44 -0
- package/dist/src/columns/time.mjs +47 -0
- package/dist/src/columns/timestamp.d.mts +44 -0
- package/dist/src/columns/timestamp.mjs +47 -0
- package/dist/src/columns/uuid.d.mts +33 -0
- package/dist/src/columns/uuid.mjs +44 -0
- package/dist/src/columns/varchar.d.mts +32 -0
- package/dist/src/columns/varchar.mjs +44 -0
- package/dist/src/connectors/bun.d.mts +18 -0
- package/dist/src/connectors/bun.mjs +97 -0
- package/dist/src/connectors/common.d.mts +148 -0
- package/dist/src/connectors/common.mjs +65 -0
- package/dist/src/connectors/pg.d.mts +18 -0
- package/dist/src/connectors/pg.mjs +103 -0
- package/dist/src/connectors/pglite.d.mts +19 -0
- package/dist/src/connectors/pglite.mjs +94 -0
- package/dist/src/connectors/postgres.d.mts +18 -0
- package/dist/src/connectors/postgres.mjs +93 -0
- package/dist/src/constraints/check.d.mts +88 -0
- package/dist/src/constraints/check.mjs +307 -0
- package/dist/src/constraints/primary-key.d.mts +28 -0
- package/dist/src/constraints/primary-key.mjs +36 -0
- package/dist/src/constraints/unique.d.mts +28 -0
- package/dist/src/constraints/unique.mjs +36 -0
- package/dist/src/db.d.mts +180 -0
- package/dist/src/db.mjs +191 -0
- package/dist/src/entity.mjs +23 -0
- package/dist/src/enumtype.d.mts +27 -0
- package/dist/src/enumtype.mjs +42 -0
- package/dist/src/filters/array.d.mts +97 -0
- package/dist/src/filters/array.mjs +150 -0
- package/dist/src/filters/custom.d.mts +12 -0
- package/dist/src/filters/custom.mjs +7 -0
- package/dist/src/filters/index.d.mts +155 -0
- package/dist/src/filters/index.mjs +318 -0
- package/dist/src/functions/index.d.mts +24 -0
- package/dist/src/functions/index.mjs +29 -0
- package/dist/src/index.d.mts +129 -0
- package/dist/src/index.mjs +78 -0
- package/dist/src/indexes.d.mts +31 -0
- package/dist/src/indexes.mjs +43 -0
- package/dist/src/migration/consts.d.mts +8 -0
- package/dist/src/migration/consts.mjs +8 -0
- package/dist/src/migration/ddl.d.mts +747 -0
- package/dist/src/migration/ddl.mjs +1084 -0
- package/dist/src/migration/index.d.mts +15 -0
- package/dist/src/migration/index.mjs +5 -0
- package/dist/src/migration/snapshot.d.mts +169 -0
- package/dist/src/migration/snapshot.mjs +123 -0
- package/dist/src/migration/statement.d.mts +89 -0
- package/dist/src/migration/statement.mjs +61 -0
- package/dist/src/models.d.mts +34 -0
- package/dist/src/models.mjs +27 -0
- package/dist/src/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.mjs +126 -0
- package/dist/src/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.mjs +29 -0
- package/dist/src/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.mjs +165 -0
- package/dist/src/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.mjs +92 -0
- package/dist/src/query-builders/aggregates.d.mts +20 -0
- package/dist/src/query-builders/aggregates.mjs +43 -0
- package/dist/src/query-builders/count.d.mts +19 -0
- package/dist/src/query-builders/count.mjs +36 -0
- package/dist/src/query-builders/delete.d.mts +19 -0
- package/dist/src/query-builders/delete.mjs +57 -0
- package/dist/src/query-builders/distinct.d.mts +19 -0
- package/dist/src/query-builders/distinct.mjs +42 -0
- package/dist/src/query-builders/exists.d.mts +19 -0
- package/dist/src/query-builders/exists.mjs +37 -0
- package/dist/src/query-builders/first.d.mts +17 -0
- package/dist/src/query-builders/first.mjs +46 -0
- package/dist/src/query-builders/insert-returning.d.mts +16 -0
- package/dist/src/query-builders/insert-returning.mjs +63 -0
- package/dist/src/query-builders/insert.d.mts +22 -0
- package/dist/src/query-builders/insert.mjs +93 -0
- package/dist/src/query-builders/orderby-clause.d.mts +14 -0
- package/dist/src/query-builders/orderby-clause.mjs +20 -0
- package/dist/src/query-builders/pre.d.mts +36 -0
- package/dist/src/query-builders/pre.mjs +60 -0
- package/dist/src/query-builders/query-promise.d.mts +14 -0
- package/dist/src/query-builders/query-promise.mjs +21 -0
- package/dist/src/query-builders/query.d.mts +14 -0
- package/dist/src/query-builders/query.mjs +17 -0
- package/dist/src/query-builders/raw.d.mts +14 -0
- package/dist/src/query-builders/raw.mjs +26 -0
- package/dist/src/query-builders/rq.d.mts +36 -0
- package/dist/src/query-builders/rq.mjs +231 -0
- package/dist/src/query-builders/select.d.mts +48 -0
- package/dist/src/query-builders/select.mjs +118 -0
- package/dist/src/query-builders/update.d.mts +24 -0
- package/dist/src/query-builders/update.mjs +99 -0
- package/dist/src/sequence.d.mts +48 -0
- package/dist/src/sequence.mjs +53 -0
- package/dist/src/sql.d.mts +15 -0
- package/dist/src/sql.mjs +36 -0
- package/dist/src/symbols.d.mts +4 -0
- package/dist/src/symbols.mjs +4 -0
- package/dist/src/table.d.mts +144 -0
- package/dist/src/table.mjs +134 -0
- package/dist/src/types.d.mts +4 -0
- package/dist/src/utils.mjs +10 -0
- package/dist/src/validators/zod.d.mts +23 -0
- package/dist/src/validators/zod.mjs +27 -0
- package/dist/src/wkx/binaryreader.mjs +56 -0
- package/dist/src/wkx/binarywriter.mjs +110 -0
- package/dist/src/wkx/geometry.mjs +101 -0
- package/dist/src/wkx/geometrycollection.mjs +113 -0
- package/dist/src/wkx/index.mjs +18 -0
- package/dist/src/wkx/linestring.mjs +124 -0
- package/dist/src/wkx/multilinestring.mjs +133 -0
- package/dist/src/wkx/multipoint.mjs +120 -0
- package/dist/src/wkx/multipolygon.mjs +155 -0
- package/dist/src/wkx/parser.mjs +183 -0
- package/dist/src/wkx/point.mjs +159 -0
- package/dist/src/wkx/polygon.mjs +189 -0
- package/dist/src/wkx/types.mjs +37 -0
- package/dist/src/wkx/wktparser.mjs +109 -0
- package/dist/src/wkx/zigzag.mjs +18 -0
- package/package.json +100 -0
|
@@ -0,0 +1,747 @@
|
|
|
1
|
+
import { OnDeleteAction } from "../columns/common.mjs";
|
|
2
|
+
import { SnapshotCheckExpr } from "../constraints/check.mjs";
|
|
3
|
+
import { IndexType } from "../indexes.mjs";
|
|
4
|
+
import { Snapshot } from "./snapshot.mjs";
|
|
5
|
+
import { CustomStatement, DDLStatement } from "./statement.mjs";
|
|
6
|
+
|
|
7
|
+
//#region src/migration/ddl.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* DDL statement that creates a new PostgreSQL schema.
|
|
10
|
+
*
|
|
11
|
+
* Generates: `CREATE SCHEMA <name>;`
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Schemas are not tracked in the migration snapshot.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* ddl.createSchema('analytics');
|
|
19
|
+
* // CREATE SCHEMA analytics;
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
declare class CreateSchemaStatement extends DDLStatement {
|
|
23
|
+
private readonly schema;
|
|
24
|
+
readonly type: "createSchema";
|
|
25
|
+
/**
|
|
26
|
+
* @param schema - The name of the schema to create.
|
|
27
|
+
*/
|
|
28
|
+
constructor(schema: string);
|
|
29
|
+
toSQL(): string;
|
|
30
|
+
/** Schemas are not tracked in snapshot, so this is a no-op. */
|
|
31
|
+
applyToSnapshot(_snapshot: Snapshot): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* DDL statement that drops an existing PostgreSQL schema.
|
|
35
|
+
*
|
|
36
|
+
* Generates: `DROP SCHEMA <name>;`
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* Schemas are not tracked in the migration snapshot.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* ddl.dropSchema('analytics');
|
|
44
|
+
* // DROP SCHEMA analytics;
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
declare class DropSchemaStatement extends DDLStatement {
|
|
48
|
+
private readonly schema;
|
|
49
|
+
readonly type: "dropSchema";
|
|
50
|
+
/**
|
|
51
|
+
* @param schema - The name of the schema to drop.
|
|
52
|
+
*/
|
|
53
|
+
constructor(schema: string);
|
|
54
|
+
toSQL(): string;
|
|
55
|
+
/** Schemas are not tracked in snapshot, so this is a no-op. */
|
|
56
|
+
applyToSnapshot(_snapshot: Snapshot): void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* DDL statement that creates a new PostgreSQL enum type.
|
|
60
|
+
*
|
|
61
|
+
* Generates: `CREATE TYPE "schema"."name" AS ENUM('val1', 'val2', ...);`
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* ddl.createEnum('public', 'user_type', ['admin', 'user', 'guest']);
|
|
66
|
+
* // CREATE TYPE "public"."user_type" AS ENUM('admin', 'user', 'guest');
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
declare class CreateEnumStatement extends DDLStatement {
|
|
70
|
+
private readonly schema;
|
|
71
|
+
private readonly name;
|
|
72
|
+
private readonly values;
|
|
73
|
+
readonly type: "createEnum";
|
|
74
|
+
/**
|
|
75
|
+
* @param schema - The schema the enum belongs to.
|
|
76
|
+
* @param name - The name of the enum type to create.
|
|
77
|
+
* @param values - Ordered list of allowed enum values.
|
|
78
|
+
*/
|
|
79
|
+
constructor(schema: string, name: string, values: string[]);
|
|
80
|
+
toSQL(): string;
|
|
81
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* DDL statement that adds a value to an existing PostgreSQL enum type.
|
|
85
|
+
*
|
|
86
|
+
* Generates: `ALTER TYPE "schema"."name" ADD VALUE IF NOT EXISTS 'value' [AFTER|BEFORE 'ref'];`
|
|
87
|
+
*
|
|
88
|
+
* @remarks
|
|
89
|
+
* PostgreSQL does not support removing values from an enum.
|
|
90
|
+
* Values can only be added, optionally positioned relative to an existing value.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* // Append a value
|
|
95
|
+
* ddl.alterEnumAddValue('public', 'user_type', 'moderator');
|
|
96
|
+
*
|
|
97
|
+
* // Insert after a specific value
|
|
98
|
+
* ddl.alterEnumAddValue('public', 'user_type', 'moderator', { after: 'admin' });
|
|
99
|
+
*
|
|
100
|
+
* // Insert before a specific value
|
|
101
|
+
* ddl.alterEnumAddValue('public', 'user_type', 'moderator', { before: 'user' });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
declare class AlterEnumAddValueStatement extends DDLStatement {
|
|
105
|
+
private readonly schema;
|
|
106
|
+
private readonly name;
|
|
107
|
+
private readonly value;
|
|
108
|
+
private readonly position?;
|
|
109
|
+
readonly type: "alterEnum";
|
|
110
|
+
/**
|
|
111
|
+
* @param schema - The schema the enum belongs to.
|
|
112
|
+
* @param name - The enum type name.
|
|
113
|
+
* @param value - The new value to add.
|
|
114
|
+
* @param position - Optional positioning: `{ after: 'val' }` or `{ before: 'val' }`.
|
|
115
|
+
*/
|
|
116
|
+
constructor(schema: string, name: string, value: string, position?: {
|
|
117
|
+
after?: string;
|
|
118
|
+
before?: string;
|
|
119
|
+
} | undefined);
|
|
120
|
+
toSQL(): string;
|
|
121
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* DDL statement that drops an existing PostgreSQL enum type.
|
|
125
|
+
*
|
|
126
|
+
* Generates: `DROP TYPE "schema"."name";`
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* ddl.dropEnum('public', 'user_type');
|
|
131
|
+
* // DROP TYPE "public"."user_type";
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
declare class DropEnumStatement extends DDLStatement {
|
|
135
|
+
private readonly schema;
|
|
136
|
+
private readonly name;
|
|
137
|
+
readonly type: "dropEnum";
|
|
138
|
+
/**
|
|
139
|
+
* @param schema - The schema the enum belongs to.
|
|
140
|
+
* @param name - The enum type name to drop.
|
|
141
|
+
*/
|
|
142
|
+
constructor(schema: string, name: string);
|
|
143
|
+
toSQL(): string;
|
|
144
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Options for configuring a PostgreSQL sequence.
|
|
148
|
+
*
|
|
149
|
+
* @see {@link CreateSequenceStatement}
|
|
150
|
+
*/
|
|
151
|
+
interface SequenceOptions {
|
|
152
|
+
/** The `START WITH` value for the sequence. */
|
|
153
|
+
startWith?: number;
|
|
154
|
+
/** The `INCREMENT BY` value. */
|
|
155
|
+
increment?: number;
|
|
156
|
+
/** The minimum value (`MINVALUE`). */
|
|
157
|
+
minValue?: number;
|
|
158
|
+
/** The maximum value (`MAXVALUE`). */
|
|
159
|
+
maxValue?: number;
|
|
160
|
+
/** Whether the sequence wraps around when it reaches min/max (`CYCLE`). */
|
|
161
|
+
cycle?: boolean;
|
|
162
|
+
/** Number of sequence values to pre-allocate (`CACHE`). */
|
|
163
|
+
cache?: number;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* DDL statement that creates a new PostgreSQL sequence.
|
|
167
|
+
*
|
|
168
|
+
* Generates: `CREATE SEQUENCE "schema"."name" [START WITH n] [INCREMENT BY n] ...;`
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* ddl.createSequence('public', 'order_seq', {
|
|
173
|
+
* startWith: 1000,
|
|
174
|
+
* increment: 1,
|
|
175
|
+
* cache: 10,
|
|
176
|
+
* });
|
|
177
|
+
* // CREATE SEQUENCE "public"."order_seq" START WITH 1000 INCREMENT BY 1 CACHE 10;
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
declare class CreateSequenceStatement extends DDLStatement {
|
|
181
|
+
private readonly schema;
|
|
182
|
+
private readonly name;
|
|
183
|
+
private readonly options;
|
|
184
|
+
readonly type: "createSequence";
|
|
185
|
+
/**
|
|
186
|
+
* @param schema - The schema the sequence belongs to.
|
|
187
|
+
* @param name - The sequence name.
|
|
188
|
+
* @param options - Optional sequence configuration.
|
|
189
|
+
*/
|
|
190
|
+
constructor(schema: string, name: string, options?: SequenceOptions);
|
|
191
|
+
toSQL(): string;
|
|
192
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* DDL statement that drops an existing PostgreSQL sequence.
|
|
196
|
+
*
|
|
197
|
+
* Generates: `DROP SEQUENCE "schema"."name";`
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* ddl.dropSequence('public', 'order_seq');
|
|
202
|
+
* // DROP SEQUENCE "public"."order_seq";
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
declare class DropSequenceStatement extends DDLStatement {
|
|
206
|
+
private readonly schema;
|
|
207
|
+
private readonly name;
|
|
208
|
+
readonly type: "dropSequence";
|
|
209
|
+
/**
|
|
210
|
+
* @param schema - The schema the sequence belongs to.
|
|
211
|
+
* @param name - The sequence name to drop.
|
|
212
|
+
*/
|
|
213
|
+
constructor(schema: string, name: string);
|
|
214
|
+
toSQL(): string;
|
|
215
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Defines a foreign-key reference from a column to another table's column.
|
|
219
|
+
*
|
|
220
|
+
* @see {@link ColumnOptions.references}
|
|
221
|
+
*/
|
|
222
|
+
interface ColumnReference {
|
|
223
|
+
/** Schema of the referenced table. */
|
|
224
|
+
schema: string;
|
|
225
|
+
/** Name of the referenced table. */
|
|
226
|
+
table: string;
|
|
227
|
+
/** Name of the referenced column. */
|
|
228
|
+
column: string;
|
|
229
|
+
/** The `ON DELETE` action (`CASCADE`, `SET NULL`, `RESTRICT`, etc.). */
|
|
230
|
+
onDelete: OnDeleteAction;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Options that can be applied to a column when creating or altering a table.
|
|
234
|
+
*
|
|
235
|
+
* @see {@link CreateTableBuilder.column}
|
|
236
|
+
* @see {@link AlterTableBuilder.addColumn}
|
|
237
|
+
*/
|
|
238
|
+
interface ColumnOptions {
|
|
239
|
+
/** Add a `NOT NULL` constraint. */
|
|
240
|
+
notNull?: boolean;
|
|
241
|
+
/** Make this column the table's primary key. */
|
|
242
|
+
primaryKey?: boolean;
|
|
243
|
+
/** Add a `UNIQUE` constraint. */
|
|
244
|
+
unique?: boolean;
|
|
245
|
+
/** A raw SQL expression for the `DEFAULT` clause. */
|
|
246
|
+
default?: string;
|
|
247
|
+
/** The `GENERATED` strategy (`"ALWAYS"` or `"BY DEFAULT"`). */
|
|
248
|
+
generated?: string;
|
|
249
|
+
/** The `AS` expression for generated columns. */
|
|
250
|
+
as?: string;
|
|
251
|
+
/** A foreign-key reference to another table's column. */
|
|
252
|
+
references?: ColumnReference;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Chainable builder that constructs a `CREATE TABLE` DDL statement.
|
|
256
|
+
*
|
|
257
|
+
* Use {@link ddl.createTable} to obtain an instance, then chain
|
|
258
|
+
* `.column()`, `.check()`, `.uniqueConstraint()`, and `.primaryKeyConstraint()`.
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```typescript
|
|
262
|
+
* ddl.createTable('public', 'users')
|
|
263
|
+
* .column('id', 'serial', { primaryKey: true })
|
|
264
|
+
* .column('name', 'varchar(255)', { notNull: true })
|
|
265
|
+
* .column('email', 'varchar(255)', { notNull: true, unique: true })
|
|
266
|
+
* .check('name_length', { column: 'name', op: '>', value: 0 })
|
|
267
|
+
* .uniqueConstraint('users_name_email_unique', ['name', 'email']);
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
declare class CreateTableBuilder extends DDLStatement {
|
|
271
|
+
private readonly schema;
|
|
272
|
+
private readonly name;
|
|
273
|
+
readonly type: "createTable";
|
|
274
|
+
private columns;
|
|
275
|
+
private checks;
|
|
276
|
+
private _uniqueConstraints;
|
|
277
|
+
private _primaryKeyConstraint?;
|
|
278
|
+
/**
|
|
279
|
+
* @param schema - The PostgreSQL schema to create the table in.
|
|
280
|
+
* @param name - The table name.
|
|
281
|
+
*/
|
|
282
|
+
constructor(schema: string, name: string);
|
|
283
|
+
/**
|
|
284
|
+
* Add a column to the table.
|
|
285
|
+
*
|
|
286
|
+
* @param colName - Column name.
|
|
287
|
+
* @param type - SQL type (e.g. `"varchar(255)"`, `"integer"`, `"serial"`).
|
|
288
|
+
* @param options - Column options (constraints, default, references, etc.).
|
|
289
|
+
* @returns `this` for chaining.
|
|
290
|
+
*/
|
|
291
|
+
column(colName: string, type: string, options?: ColumnOptions): this;
|
|
292
|
+
/**
|
|
293
|
+
* Add a CHECK constraint to the table.
|
|
294
|
+
*
|
|
295
|
+
* @param chkName - Constraint name.
|
|
296
|
+
* @param expr - The check expression.
|
|
297
|
+
* @returns `this` for chaining.
|
|
298
|
+
*/
|
|
299
|
+
check(chkName: string, expr: SnapshotCheckExpr): this;
|
|
300
|
+
/**
|
|
301
|
+
* Add a table-level UNIQUE constraint spanning one or more columns.
|
|
302
|
+
*
|
|
303
|
+
* @param ucName - Constraint name.
|
|
304
|
+
* @param columns - Column names that form the unique key.
|
|
305
|
+
* @returns `this` for chaining.
|
|
306
|
+
*/
|
|
307
|
+
uniqueConstraint(ucName: string, columns: string[]): this;
|
|
308
|
+
/**
|
|
309
|
+
* Add a composite PRIMARY KEY constraint.
|
|
310
|
+
*
|
|
311
|
+
* @param pkName - Constraint name.
|
|
312
|
+
* @param columns - Column names that form the primary key.
|
|
313
|
+
* @returns `this` for chaining.
|
|
314
|
+
*/
|
|
315
|
+
primaryKeyConstraint(pkName: string, columns: string[]): this;
|
|
316
|
+
toSQL(): string;
|
|
317
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* DDL statement that drops an existing table.
|
|
321
|
+
*
|
|
322
|
+
* Generates: `DROP TABLE "schema"."name";`
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```typescript
|
|
326
|
+
* ddl.dropTable('public', 'users');
|
|
327
|
+
* // DROP TABLE "public"."users";
|
|
328
|
+
* ```
|
|
329
|
+
*/
|
|
330
|
+
declare class DropTableStatement extends DDLStatement {
|
|
331
|
+
private readonly schema;
|
|
332
|
+
private readonly name;
|
|
333
|
+
readonly type: "dropTable";
|
|
334
|
+
/**
|
|
335
|
+
* @param schema - The schema of the table.
|
|
336
|
+
* @param name - The table name to drop.
|
|
337
|
+
*/
|
|
338
|
+
constructor(schema: string, name: string);
|
|
339
|
+
toSQL(): string;
|
|
340
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* DDL statement that renames an existing table.
|
|
344
|
+
*
|
|
345
|
+
* Generates: `ALTER TABLE "schema"."oldName" RENAME TO "newName";`
|
|
346
|
+
*
|
|
347
|
+
* @example
|
|
348
|
+
* ```typescript
|
|
349
|
+
* ddl.renameTable('public', 'users', 'accounts');
|
|
350
|
+
* // ALTER TABLE "public"."users" RENAME TO "accounts";
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
declare class RenameTableStatement extends DDLStatement {
|
|
354
|
+
private readonly schema;
|
|
355
|
+
private readonly oldName;
|
|
356
|
+
private readonly newName;
|
|
357
|
+
readonly type: "renameTable";
|
|
358
|
+
/**
|
|
359
|
+
* @param schema - The schema of the table.
|
|
360
|
+
* @param oldName - The current table name.
|
|
361
|
+
* @param newName - The new table name.
|
|
362
|
+
*/
|
|
363
|
+
constructor(schema: string, oldName: string, newName: string);
|
|
364
|
+
toSQL(): string;
|
|
365
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Chainable builder that constructs `ALTER TABLE` DDL statements.
|
|
369
|
+
*
|
|
370
|
+
* Supports adding/dropping columns, changing types, toggling constraints,
|
|
371
|
+
* and managing defaults. Each chained method appends an action that produces
|
|
372
|
+
* a separate `ALTER TABLE ... ;` SQL statement when {@link toSQL} is called.
|
|
373
|
+
*
|
|
374
|
+
* Use {@link ddl.alterTable} to obtain an instance.
|
|
375
|
+
*
|
|
376
|
+
* @example
|
|
377
|
+
* ```typescript
|
|
378
|
+
* ddl.alterTable('public', 'users')
|
|
379
|
+
* .addColumn('age', 'integer', { notNull: true, default: '0' })
|
|
380
|
+
* .dropColumn('legacy_field')
|
|
381
|
+
* .setNotNull('email')
|
|
382
|
+
* .addUniqueConstraint('users_email_unique', ['email']);
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
declare class AlterTableBuilder extends DDLStatement {
|
|
386
|
+
private readonly schema;
|
|
387
|
+
private readonly name;
|
|
388
|
+
readonly type: "alterTable";
|
|
389
|
+
private actions;
|
|
390
|
+
/**
|
|
391
|
+
* @param schema - The schema of the table to alter.
|
|
392
|
+
* @param name - The table name.
|
|
393
|
+
*/
|
|
394
|
+
constructor(schema: string, name: string);
|
|
395
|
+
/**
|
|
396
|
+
* Add a new column to the table.
|
|
397
|
+
*
|
|
398
|
+
* @param name - Column name.
|
|
399
|
+
* @param type - SQL type (e.g. `"varchar(255)"`).
|
|
400
|
+
* @param options - Column constraints and options.
|
|
401
|
+
* @returns `this` for chaining.
|
|
402
|
+
*/
|
|
403
|
+
addColumn(name: string, type: string, options?: ColumnOptions): this;
|
|
404
|
+
/**
|
|
405
|
+
* Drop a column from the table.
|
|
406
|
+
*
|
|
407
|
+
* @param name - The column name to drop.
|
|
408
|
+
* @returns `this` for chaining.
|
|
409
|
+
*/
|
|
410
|
+
dropColumn(name: string): this;
|
|
411
|
+
/**
|
|
412
|
+
* Rename a column.
|
|
413
|
+
*
|
|
414
|
+
* @param oldName - The current column name.
|
|
415
|
+
* @param newName - The new column name.
|
|
416
|
+
* @returns `this` for chaining.
|
|
417
|
+
*/
|
|
418
|
+
renameColumn(oldName: string, newName: string): this;
|
|
419
|
+
/**
|
|
420
|
+
* Change the type of an existing column.
|
|
421
|
+
*
|
|
422
|
+
* @param name - The column name.
|
|
423
|
+
* @param newType - The new SQL type.
|
|
424
|
+
* @returns `this` for chaining.
|
|
425
|
+
*/
|
|
426
|
+
alterColumnType(name: string, newType: string): this;
|
|
427
|
+
/**
|
|
428
|
+
* Add a column-level UNIQUE constraint.
|
|
429
|
+
*
|
|
430
|
+
* @param column - The column name.
|
|
431
|
+
* @returns `this` for chaining.
|
|
432
|
+
*/
|
|
433
|
+
addUnique(column: string): this;
|
|
434
|
+
/**
|
|
435
|
+
* Drop a named constraint (UNIQUE, CHECK, or PRIMARY KEY).
|
|
436
|
+
*
|
|
437
|
+
* @param name - The constraint name.
|
|
438
|
+
* @returns `this` for chaining.
|
|
439
|
+
*/
|
|
440
|
+
dropConstraint(name: string): this;
|
|
441
|
+
/**
|
|
442
|
+
* Set `NOT NULL` on a column.
|
|
443
|
+
*
|
|
444
|
+
* @param column - The column name.
|
|
445
|
+
* @returns `this` for chaining.
|
|
446
|
+
*/
|
|
447
|
+
setNotNull(column: string): this;
|
|
448
|
+
/**
|
|
449
|
+
* Drop `NOT NULL` from a column, making it nullable.
|
|
450
|
+
*
|
|
451
|
+
* @param column - The column name.
|
|
452
|
+
* @returns `this` for chaining.
|
|
453
|
+
*/
|
|
454
|
+
dropNotNull(column: string): this;
|
|
455
|
+
/**
|
|
456
|
+
* Set or change the DEFAULT value for a column.
|
|
457
|
+
*
|
|
458
|
+
* @param column - The column name.
|
|
459
|
+
* @param defaultValue - The new default value as a raw SQL expression.
|
|
460
|
+
* @returns `this` for chaining.
|
|
461
|
+
*/
|
|
462
|
+
setDefault(column: string, defaultValue: string): this;
|
|
463
|
+
/**
|
|
464
|
+
* Drop the DEFAULT value from a column.
|
|
465
|
+
*
|
|
466
|
+
* @param column - The column name.
|
|
467
|
+
* @returns `this` for chaining.
|
|
468
|
+
*/
|
|
469
|
+
dropDefault(column: string): this;
|
|
470
|
+
/**
|
|
471
|
+
* Add a CHECK constraint to the table.
|
|
472
|
+
*
|
|
473
|
+
* @param name - Constraint name.
|
|
474
|
+
* @param expr - The check expression.
|
|
475
|
+
* @returns `this` for chaining.
|
|
476
|
+
*/
|
|
477
|
+
addCheck(name: string, expr: SnapshotCheckExpr): this;
|
|
478
|
+
/**
|
|
479
|
+
* Add a table-level UNIQUE constraint spanning one or more columns.
|
|
480
|
+
*
|
|
481
|
+
* @param name - Constraint name.
|
|
482
|
+
* @param columns - Column names that form the unique key.
|
|
483
|
+
* @returns `this` for chaining.
|
|
484
|
+
*/
|
|
485
|
+
addUniqueConstraint(name: string, columns: string[]): this;
|
|
486
|
+
/**
|
|
487
|
+
* Add a composite PRIMARY KEY constraint.
|
|
488
|
+
*
|
|
489
|
+
* @param name - Constraint name.
|
|
490
|
+
* @param columns - Column names that form the primary key.
|
|
491
|
+
* @returns `this` for chaining.
|
|
492
|
+
*/
|
|
493
|
+
addPrimaryKeyConstraint(name: string, columns: string[]): this;
|
|
494
|
+
toSQL(): string;
|
|
495
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Chainable builder that constructs a `CREATE INDEX` DDL statement.
|
|
499
|
+
*
|
|
500
|
+
* Use {@link ddl.createIndex} to obtain an instance, then chain `.on()`,
|
|
501
|
+
* and optionally `.using()` and `.unique()`.
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* ```typescript
|
|
505
|
+
* ddl.createIndex('idx_users_email')
|
|
506
|
+
* .on('public', 'users', ['email'])
|
|
507
|
+
* .using('btree')
|
|
508
|
+
* .unique();
|
|
509
|
+
* // CREATE UNIQUE INDEX idx_users_email ON "public"."users" USING btree ("email");
|
|
510
|
+
* ```
|
|
511
|
+
*/
|
|
512
|
+
declare class CreateIndexBuilder extends DDLStatement {
|
|
513
|
+
private readonly indexName;
|
|
514
|
+
readonly type: "createIndex";
|
|
515
|
+
private tableSchema;
|
|
516
|
+
private tableName;
|
|
517
|
+
private indexType;
|
|
518
|
+
private indexColumns;
|
|
519
|
+
private isUnique;
|
|
520
|
+
private isConcurrent;
|
|
521
|
+
/**
|
|
522
|
+
* @param indexName - The name of the index to create.
|
|
523
|
+
*/
|
|
524
|
+
constructor(indexName: string);
|
|
525
|
+
/**
|
|
526
|
+
* Build the index concurrently, without locking writes on the table.
|
|
527
|
+
*
|
|
528
|
+
* Generates: `CREATE INDEX CONCURRENTLY ...`
|
|
529
|
+
*
|
|
530
|
+
* @remarks
|
|
531
|
+
* Concurrent index creation cannot run inside a transaction.
|
|
532
|
+
* Set `transaction: false` in your migration options when using this.
|
|
533
|
+
*
|
|
534
|
+
* @returns `this` for chaining.
|
|
535
|
+
*/
|
|
536
|
+
concurrently(): this;
|
|
537
|
+
/**
|
|
538
|
+
* Specify the table and columns this index is created on.
|
|
539
|
+
*
|
|
540
|
+
* @param schema - The table's schema.
|
|
541
|
+
* @param table - The table name.
|
|
542
|
+
* @param columns - Optional array of column names to index.
|
|
543
|
+
* @returns `this` for chaining.
|
|
544
|
+
*/
|
|
545
|
+
on(schema: string, table: string, columns?: string[]): this;
|
|
546
|
+
/**
|
|
547
|
+
* Specify the index method.
|
|
548
|
+
*
|
|
549
|
+
* @param type - The index type (`"btree"`, `"hash"`, `"gin"`, `"gist"`, etc.).
|
|
550
|
+
* @param columns - Optional array of column names to index.
|
|
551
|
+
* @returns `this` for chaining.
|
|
552
|
+
*/
|
|
553
|
+
using(type: IndexType, columns?: string[]): this;
|
|
554
|
+
/**
|
|
555
|
+
* Make this a unique index.
|
|
556
|
+
*
|
|
557
|
+
* @returns `this` for chaining.
|
|
558
|
+
*/
|
|
559
|
+
unique(): this;
|
|
560
|
+
toSQL(): string;
|
|
561
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* DDL statement builder that drops an existing index.
|
|
565
|
+
*
|
|
566
|
+
* Generates: `DROP INDEX [CONCURRENTLY] <name>;`
|
|
567
|
+
*
|
|
568
|
+
* @example
|
|
569
|
+
* ```typescript
|
|
570
|
+
* ddl.dropIndex('idx_users_email');
|
|
571
|
+
* // DROP INDEX idx_users_email;
|
|
572
|
+
*
|
|
573
|
+
* ddl.dropIndex('idx_users_email').concurrently();
|
|
574
|
+
* // DROP INDEX CONCURRENTLY idx_users_email;
|
|
575
|
+
* ```
|
|
576
|
+
*/
|
|
577
|
+
declare class DropIndexStatement extends DDLStatement {
|
|
578
|
+
private readonly indexName;
|
|
579
|
+
readonly type: "dropIndex";
|
|
580
|
+
private isConcurrent;
|
|
581
|
+
/**
|
|
582
|
+
* @param indexName - The name of the index to drop.
|
|
583
|
+
*/
|
|
584
|
+
constructor(indexName: string);
|
|
585
|
+
/**
|
|
586
|
+
* Drop the index concurrently, without locking writes on the table.
|
|
587
|
+
*
|
|
588
|
+
* Generates: `DROP INDEX CONCURRENTLY ...`
|
|
589
|
+
*
|
|
590
|
+
* @remarks
|
|
591
|
+
* Concurrent index drops cannot run inside a transaction.
|
|
592
|
+
* Set `transaction: false` in your migration options when using this.
|
|
593
|
+
*
|
|
594
|
+
* @returns `this` for chaining.
|
|
595
|
+
*/
|
|
596
|
+
concurrently(): this;
|
|
597
|
+
toSQL(): string;
|
|
598
|
+
applyToSnapshot(snapshot: Snapshot): void;
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* The main DDL builder entry point.
|
|
602
|
+
*
|
|
603
|
+
* Provides factory methods for all supported DDL operations.
|
|
604
|
+
* Import from `durcno/migration` and use in migration files.
|
|
605
|
+
*
|
|
606
|
+
* @example
|
|
607
|
+
* ```typescript
|
|
608
|
+
* import { ddl, type DDLStatement } from 'durcno/migration';
|
|
609
|
+
*
|
|
610
|
+
* export const statements: DDLStatement[] = [
|
|
611
|
+
* ddl.createEnum('public', 'user_type', ['admin', 'user']),
|
|
612
|
+
* ddl.createTable('public', 'users')
|
|
613
|
+
* .column('id', 'serial', { primaryKey: true })
|
|
614
|
+
* .column('name', 'varchar(255)', { notNull: true }),
|
|
615
|
+
* ];
|
|
616
|
+
* ```
|
|
617
|
+
*/
|
|
618
|
+
declare const ddl: {
|
|
619
|
+
/**
|
|
620
|
+
* Create a new schema.
|
|
621
|
+
*
|
|
622
|
+
* @param name - The schema name.
|
|
623
|
+
* @returns A {@link CreateSchemaStatement}.
|
|
624
|
+
*/
|
|
625
|
+
createSchema(name: string): CreateSchemaStatement;
|
|
626
|
+
/**
|
|
627
|
+
* Drop a schema.
|
|
628
|
+
*
|
|
629
|
+
* @param name - The schema name.
|
|
630
|
+
* @returns A {@link DropSchemaStatement}.
|
|
631
|
+
*/
|
|
632
|
+
dropSchema(name: string): DropSchemaStatement;
|
|
633
|
+
/**
|
|
634
|
+
* Create a new enum type.
|
|
635
|
+
*
|
|
636
|
+
* @param schema - The schema the enum belongs to.
|
|
637
|
+
* @param name - The enum type name.
|
|
638
|
+
* @param values - Ordered list of allowed values.
|
|
639
|
+
* @returns A {@link CreateEnumStatement}.
|
|
640
|
+
*/
|
|
641
|
+
createEnum(schema: string, name: string, values: string[]): CreateEnumStatement;
|
|
642
|
+
/**
|
|
643
|
+
* Add a value to an existing enum.
|
|
644
|
+
*
|
|
645
|
+
* @remarks
|
|
646
|
+
* PostgreSQL does not support removing enum values.
|
|
647
|
+
*
|
|
648
|
+
* @param schema - The schema the enum belongs to.
|
|
649
|
+
* @param name - The enum type name.
|
|
650
|
+
* @param value - The new value to add.
|
|
651
|
+
* @param position - Optional positioning: `{ after: 'val' }` or `{ before: 'val' }`.
|
|
652
|
+
* @returns An {@link AlterEnumAddValueStatement}.
|
|
653
|
+
*/
|
|
654
|
+
alterEnumAddValue(schema: string, name: string, value: string, position?: {
|
|
655
|
+
after?: string;
|
|
656
|
+
before?: string;
|
|
657
|
+
}): AlterEnumAddValueStatement;
|
|
658
|
+
/**
|
|
659
|
+
* Drop an enum type.
|
|
660
|
+
*
|
|
661
|
+
* @param schema - The schema the enum belongs to.
|
|
662
|
+
* @param name - The enum type name.
|
|
663
|
+
* @returns A {@link DropEnumStatement}.
|
|
664
|
+
*/
|
|
665
|
+
dropEnum(schema: string, name: string): DropEnumStatement;
|
|
666
|
+
/**
|
|
667
|
+
* Create a new sequence.
|
|
668
|
+
*
|
|
669
|
+
* @param schema - The schema the sequence belongs to.
|
|
670
|
+
* @param name - The sequence name.
|
|
671
|
+
* @param options - Optional sequence configuration.
|
|
672
|
+
* @returns A {@link CreateSequenceStatement}.
|
|
673
|
+
*/
|
|
674
|
+
createSequence(schema: string, name: string, options?: SequenceOptions): CreateSequenceStatement;
|
|
675
|
+
/**
|
|
676
|
+
* Drop a sequence.
|
|
677
|
+
*
|
|
678
|
+
* @param schema - The schema the sequence belongs to.
|
|
679
|
+
* @param name - The sequence name.
|
|
680
|
+
* @returns A {@link DropSequenceStatement}.
|
|
681
|
+
*/
|
|
682
|
+
dropSequence(schema: string, name: string): DropSequenceStatement;
|
|
683
|
+
/**
|
|
684
|
+
* Create a new table. Returns a chainable {@link CreateTableBuilder}.
|
|
685
|
+
*
|
|
686
|
+
* @param schema - The schema to create the table in.
|
|
687
|
+
* @param name - The table name.
|
|
688
|
+
* @returns A {@link CreateTableBuilder} for chaining `.column()`, `.check()`, etc.
|
|
689
|
+
*/
|
|
690
|
+
createTable(schema: string, name: string): CreateTableBuilder;
|
|
691
|
+
/**
|
|
692
|
+
* Drop a table.
|
|
693
|
+
*
|
|
694
|
+
* @param schema - The schema of the table.
|
|
695
|
+
* @param name - The table name.
|
|
696
|
+
* @returns A {@link DropTableStatement}.
|
|
697
|
+
*/
|
|
698
|
+
dropTable(schema: string, name: string): DropTableStatement;
|
|
699
|
+
/**
|
|
700
|
+
* Rename a table.
|
|
701
|
+
*
|
|
702
|
+
* @param schema - The schema of the table.
|
|
703
|
+
* @param oldName - The current table name.
|
|
704
|
+
* @param newName - The new table name.
|
|
705
|
+
* @returns A {@link RenameTableStatement}.
|
|
706
|
+
*/
|
|
707
|
+
renameTable(schema: string, oldName: string, newName: string): RenameTableStatement;
|
|
708
|
+
/**
|
|
709
|
+
* Alter an existing table. Returns a chainable {@link AlterTableBuilder}.
|
|
710
|
+
*
|
|
711
|
+
* @param schema - The schema of the table.
|
|
712
|
+
* @param name - The table name.
|
|
713
|
+
* @returns An {@link AlterTableBuilder} for chaining `.addColumn()`, `.dropColumn()`, etc.
|
|
714
|
+
*/
|
|
715
|
+
alterTable(schema: string, name: string): AlterTableBuilder;
|
|
716
|
+
/**
|
|
717
|
+
* Create an index. Returns a chainable {@link CreateIndexBuilder}.
|
|
718
|
+
*
|
|
719
|
+
* @param name - The index name.
|
|
720
|
+
* @returns A {@link CreateIndexBuilder} for chaining `.on()`, `.using()`, `.unique()`.
|
|
721
|
+
*
|
|
722
|
+
* @example
|
|
723
|
+
* ```typescript
|
|
724
|
+
* ddl.createIndex('idx_users_email')
|
|
725
|
+
* .on('public', 'users', ['email'])
|
|
726
|
+
* .using('btree')
|
|
727
|
+
* .unique();
|
|
728
|
+
* ```
|
|
729
|
+
*/
|
|
730
|
+
createIndex(name: string): CreateIndexBuilder;
|
|
731
|
+
/**
|
|
732
|
+
* Drop an index.
|
|
733
|
+
*
|
|
734
|
+
* @param name - The index name.
|
|
735
|
+
* @returns A {@link DropIndexStatement}.
|
|
736
|
+
*/
|
|
737
|
+
dropIndex(name: string): DropIndexStatement;
|
|
738
|
+
/**
|
|
739
|
+
* Create a custom SQL statement. Preserved during migration regeneration.
|
|
740
|
+
*
|
|
741
|
+
* @param sql - The raw SQL string.
|
|
742
|
+
* @returns A {@link CustomStatement}.
|
|
743
|
+
*/
|
|
744
|
+
custom(sql: string): CustomStatement;
|
|
745
|
+
};
|
|
746
|
+
//#endregion
|
|
747
|
+
export { ddl };
|