kysely 0.27.3 → 0.27.5
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/.renovaterc.json +3 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +7 -7
- package/deno.check.d.ts +86 -0
- package/deno.check.json +21 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +13 -3
- package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
- package/dist/cjs/dialect/dialect-adapter.d.ts +16 -2
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +12 -7
- package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +83 -55
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/cjs/dialect/mssql/mssql-driver.js +114 -48
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/cjs/driver/database-connection.d.ts +3 -1
- package/dist/cjs/driver/dummy-driver.d.ts +13 -12
- package/dist/cjs/driver/dummy-driver.js +13 -12
- package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
- package/dist/cjs/dynamic/dynamic.d.ts +7 -7
- package/dist/cjs/dynamic/dynamic.js +7 -7
- package/dist/cjs/expression/expression-builder.d.ts +153 -62
- package/dist/cjs/expression/expression-builder.js +2 -3
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
- package/dist/cjs/expression/expression.d.ts +40 -5
- package/dist/cjs/expression/expression.js +2 -3
- package/dist/cjs/helpers/mssql.d.ts +74 -14
- package/dist/cjs/helpers/mssql.js +77 -18
- package/dist/cjs/helpers/mysql.d.ts +17 -13
- package/dist/cjs/helpers/mysql.js +20 -17
- package/dist/cjs/helpers/postgres.d.ts +11 -8
- package/dist/cjs/helpers/postgres.js +14 -12
- package/dist/cjs/helpers/sqlite.d.ts +41 -16
- package/dist/cjs/helpers/sqlite.js +44 -20
- package/dist/cjs/index.d.ts +28 -21
- package/dist/cjs/index.js +28 -21
- package/dist/cjs/kysely.d.ts +100 -42
- package/dist/cjs/kysely.js +63 -39
- package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/migration/migrator.d.ts +82 -14
- package/dist/cjs/migration/migrator.js +82 -14
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
- package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
- package/dist/cjs/operation-node/case-node.d.ts +1 -1
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/data-type-node.js +17 -3
- package/dist/cjs/operation-node/delete-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/cjs/operation-node/having-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/on-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-source.js +1 -2
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +11 -3
- package/dist/cjs/operation-node/operation-node-transformer.js +26 -3
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +3 -3
- package/dist/cjs/operation-node/operator-node.js +8 -6
- package/dist/cjs/operation-node/output-node.d.ts +13 -0
- package/dist/cjs/operation-node/output-node.js +26 -0
- package/dist/cjs/operation-node/query-node.d.ts +15 -6
- package/dist/cjs/operation-node/query-node.js +17 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.js +6 -8
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/where-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.js +5 -6
- package/dist/cjs/parser/data-type-parser.js +1 -2
- package/dist/cjs/parser/default-value-parser.js +1 -2
- package/dist/cjs/parser/expression-parser.js +3 -4
- package/dist/cjs/parser/fetch-parser.js +1 -2
- package/dist/cjs/parser/group-by-parser.js +1 -2
- package/dist/cjs/parser/identifier-parser.js +1 -2
- package/dist/cjs/parser/insert-values-parser.js +1 -2
- package/dist/cjs/parser/join-parser.js +1 -2
- package/dist/cjs/parser/merge-parser.js +2 -3
- package/dist/cjs/parser/on-commit-action-parse.js +1 -2
- package/dist/cjs/parser/on-modify-action-parser.js +1 -2
- package/dist/cjs/parser/order-by-parser.js +3 -4
- package/dist/cjs/parser/parse-utils.js +4 -5
- package/dist/cjs/parser/partition-by-parser.js +1 -2
- package/dist/cjs/parser/reference-parser.js +8 -9
- package/dist/cjs/parser/returning-parser.d.ts +4 -3
- package/dist/cjs/parser/select-parser.js +2 -3
- package/dist/cjs/parser/set-operation-parser.js +1 -2
- package/dist/cjs/parser/table-parser.js +4 -5
- package/dist/cjs/parser/top-parser.js +1 -2
- package/dist/cjs/parser/unary-operation-parser.js +3 -4
- package/dist/cjs/parser/update-set-parser.js +2 -3
- package/dist/cjs/parser/value-parser.js +4 -5
- package/dist/cjs/parser/with-parser.js +1 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +54 -27
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +26 -21
- package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
- package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +219 -43
- package/dist/cjs/query-builder/delete-query-builder.js +95 -31
- package/dist/cjs/query-builder/function-module.d.ts +40 -93
- package/dist/cjs/query-builder/function-module.js +1 -2
- package/dist/cjs/query-builder/insert-query-builder.d.ts +326 -67
- package/dist/cjs/query-builder/insert-query-builder.js +212 -61
- package/dist/cjs/query-builder/insert-result.d.ts +10 -5
- package/dist/cjs/query-builder/insert-result.js +10 -5
- package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
- package/dist/cjs/query-builder/json-path-builder.js +8 -5
- package/dist/cjs/query-builder/merge-query-builder.d.ts +312 -10
- package/dist/cjs/query-builder/merge-query-builder.js +98 -7
- package/dist/cjs/query-builder/no-result-error.js +2 -2
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +53 -20
- package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
- package/dist/cjs/query-builder/output-interface.d.ts +138 -0
- package/dist/cjs/query-builder/output-interface.js +2 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +7 -5
- package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +370 -73
- package/dist/cjs/query-builder/select-query-builder.js +14 -9
- package/dist/cjs/query-builder/update-query-builder.d.ts +225 -31
- package/dist/cjs/query-builder/update-query-builder.js +96 -17
- package/dist/cjs/query-builder/update-result.d.ts +9 -0
- package/dist/cjs/query-builder/update-result.js +9 -0
- package/dist/cjs/query-builder/where-interface.d.ts +6 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +45 -1
- package/dist/cjs/query-creator.d.ts +122 -21
- package/dist/cjs/query-creator.js +56 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
- package/dist/cjs/raw-builder/raw-builder.js +1 -2
- package/dist/cjs/raw-builder/sql.d.ts +31 -12
- package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
- package/dist/cjs/schema/alter-column-builder.js +20 -3
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +44 -10
- package/dist/cjs/schema/alter-table-add-index-builder.js +27 -10
- package/dist/cjs/schema/alter-table-builder.js +1 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +286 -24
- package/dist/cjs/schema/column-definition-builder.js +288 -24
- package/dist/cjs/schema/create-table-builder.d.ts +86 -33
- package/dist/cjs/schema/create-table-builder.js +86 -33
- package/dist/cjs/util/assert.js +2 -3
- package/dist/cjs/util/column-type.d.ts +5 -9
- package/dist/cjs/util/compilable.js +1 -2
- package/dist/cjs/util/json-object-args.js +1 -2
- package/dist/cjs/util/log-once.js +1 -2
- package/dist/cjs/util/object-utils.js +38 -26
- package/dist/cjs/util/performance-now.js +1 -2
- package/dist/cjs/util/prevent-await.js +1 -2
- package/dist/cjs/util/query-id.js +1 -2
- package/dist/cjs/util/random-string.js +1 -2
- package/dist/cjs/util/require-all-props.d.ts +4 -2
- package/dist/cjs/util/require-all-props.js +5 -4
- package/dist/cjs/util/stack-trace-utils.js +1 -2
- package/dist/cjs/util/streamable.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +4 -2
- package/dist/esm/dialect/dialect-adapter-base.d.ts +13 -3
- package/dist/esm/dialect/dialect-adapter-base.js +4 -1
- package/dist/esm/dialect/dialect-adapter.d.ts +16 -2
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +12 -7
- package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +83 -55
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/esm/dialect/mssql/mssql-driver.js +114 -48
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/esm/driver/database-connection.d.ts +3 -1
- package/dist/esm/driver/dummy-driver.d.ts +13 -12
- package/dist/esm/driver/dummy-driver.js +13 -12
- package/dist/esm/dynamic/dynamic.d.ts +7 -7
- package/dist/esm/dynamic/dynamic.js +7 -7
- package/dist/esm/expression/expression-builder.d.ts +153 -62
- package/dist/esm/expression/expression-wrapper.d.ts +92 -23
- package/dist/esm/expression/expression.d.ts +40 -5
- package/dist/esm/helpers/mssql.d.ts +74 -14
- package/dist/esm/helpers/mssql.js +74 -14
- package/dist/esm/helpers/mysql.d.ts +17 -13
- package/dist/esm/helpers/mysql.js +17 -13
- package/dist/esm/helpers/postgres.d.ts +11 -8
- package/dist/esm/helpers/postgres.js +11 -8
- package/dist/esm/helpers/sqlite.d.ts +41 -16
- package/dist/esm/helpers/sqlite.js +41 -16
- package/dist/esm/index.d.ts +28 -21
- package/dist/esm/index.js +28 -21
- package/dist/esm/kysely.d.ts +100 -42
- package/dist/esm/kysely.js +61 -37
- package/dist/esm/migration/file-migration-provider.d.ts +2 -2
- package/dist/esm/migration/file-migration-provider.js +2 -2
- package/dist/esm/migration/migrator.d.ts +82 -14
- package/dist/esm/migration/migrator.js +82 -14
- package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/esm/operation-node/aggregate-function-node.js +9 -0
- package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
- package/dist/esm/operation-node/case-node.d.ts +1 -1
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/data-type-node.js +15 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +3 -0
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/esm/operation-node/having-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +3 -0
- package/dist/esm/operation-node/on-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +11 -3
- package/dist/esm/operation-node/operation-node-transformer.js +26 -3
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +3 -3
- package/dist/esm/operation-node/operator-node.js +2 -0
- package/dist/esm/operation-node/output-node.d.ts +13 -0
- package/dist/esm/operation-node/output-node.js +24 -0
- package/dist/esm/operation-node/query-node.d.ts +15 -6
- package/dist/esm/operation-node/query-node.js +17 -0
- package/dist/esm/operation-node/select-query-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.js +6 -8
- package/dist/esm/operation-node/update-query-node.d.ts +3 -0
- package/dist/esm/operation-node/where-node.d.ts +1 -1
- package/dist/esm/parser/returning-parser.d.ts +4 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +54 -27
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +26 -21
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
- package/dist/esm/plugin/noop-plugin.d.ts +28 -6
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +219 -43
- package/dist/esm/query-builder/delete-query-builder.js +95 -31
- package/dist/esm/query-builder/function-module.d.ts +40 -93
- package/dist/esm/query-builder/insert-query-builder.d.ts +326 -67
- package/dist/esm/query-builder/insert-query-builder.js +212 -61
- package/dist/esm/query-builder/insert-result.d.ts +10 -5
- package/dist/esm/query-builder/insert-result.js +10 -5
- package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
- package/dist/esm/query-builder/json-path-builder.js +8 -5
- package/dist/esm/query-builder/merge-query-builder.d.ts +312 -10
- package/dist/esm/query-builder/merge-query-builder.js +98 -7
- package/dist/esm/query-builder/on-conflict-builder.d.ts +53 -20
- package/dist/esm/query-builder/on-conflict-builder.js +41 -16
- package/dist/esm/query-builder/output-interface.d.ts +138 -0
- package/dist/esm/query-builder/output-interface.js +2 -0
- package/dist/esm/query-builder/returning-interface.d.ts +7 -5
- package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +370 -73
- package/dist/esm/query-builder/select-query-builder.js +13 -7
- package/dist/esm/query-builder/update-query-builder.d.ts +225 -31
- package/dist/esm/query-builder/update-query-builder.js +96 -17
- package/dist/esm/query-builder/update-result.d.ts +9 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-builder/where-interface.d.ts +6 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +45 -1
- package/dist/esm/query-creator.d.ts +122 -21
- package/dist/esm/query-creator.js +56 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
- package/dist/esm/raw-builder/sql.d.ts +31 -12
- package/dist/esm/schema/alter-column-builder.d.ts +17 -3
- package/dist/esm/schema/alter-column-builder.js +20 -3
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +44 -10
- package/dist/esm/schema/alter-table-add-index-builder.js +27 -10
- package/dist/esm/schema/alter-table-builder.js +1 -2
- package/dist/esm/schema/column-definition-builder.d.ts +286 -24
- package/dist/esm/schema/column-definition-builder.js +288 -24
- package/dist/esm/schema/create-table-builder.d.ts +86 -33
- package/dist/esm/schema/create-table-builder.js +86 -33
- package/dist/esm/util/column-type.d.ts +5 -9
- package/dist/esm/util/object-utils.js +18 -5
- package/dist/esm/util/require-all-props.d.ts +4 -2
- package/dist/esm/util/require-all-props.js +4 -2
- package/dist/esm/util/streamable.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +4 -2
- package/package.json +30 -24
|
@@ -22,6 +22,23 @@ class ColumnDefinitionBuilder {
|
|
|
22
22
|
*
|
|
23
23
|
* Some dialects like PostgreSQL don't support this. On PostgreSQL
|
|
24
24
|
* you can use the `serial` or `bigserial` data type instead.
|
|
25
|
+
*
|
|
26
|
+
* ### Examples
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* await db.schema
|
|
30
|
+
* .createTable('person')
|
|
31
|
+
* .addColumn('id', 'integer', col => col.autoIncrement().primaryKey())
|
|
32
|
+
* .execute()
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* The generated SQL (MySQL):
|
|
36
|
+
*
|
|
37
|
+
* ```sql
|
|
38
|
+
* create table `person` (
|
|
39
|
+
* `id` integer primary key auto_increment
|
|
40
|
+
* )
|
|
41
|
+
* ```
|
|
25
42
|
*/
|
|
26
43
|
autoIncrement() {
|
|
27
44
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
|
|
@@ -32,6 +49,23 @@ class ColumnDefinitionBuilder {
|
|
|
32
49
|
* This only works on some dialects like MS SQL Server (MSSQL).
|
|
33
50
|
*
|
|
34
51
|
* For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
|
|
52
|
+
*
|
|
53
|
+
* ### Examples
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* await db.schema
|
|
57
|
+
* .createTable('person')
|
|
58
|
+
* .addColumn('id', 'integer', col => col.identity().primaryKey())
|
|
59
|
+
* .execute()
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* The generated SQL (MSSQL):
|
|
63
|
+
*
|
|
64
|
+
* ```sql
|
|
65
|
+
* create table "person" (
|
|
66
|
+
* "id" integer identity primary key
|
|
67
|
+
* )
|
|
68
|
+
* ```
|
|
35
69
|
*/
|
|
36
70
|
identity() {
|
|
37
71
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { identity: true }));
|
|
@@ -41,6 +75,22 @@ class ColumnDefinitionBuilder {
|
|
|
41
75
|
*
|
|
42
76
|
* If you want to specify a composite primary key use the
|
|
43
77
|
* {@link CreateTableBuilder.addPrimaryKeyConstraint} method.
|
|
78
|
+
*
|
|
79
|
+
* ### Examples
|
|
80
|
+
*
|
|
81
|
+
* ```ts
|
|
82
|
+
* await db.schema
|
|
83
|
+
* .createTable('person')
|
|
84
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
85
|
+
* .execute()
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* The generated SQL (MySQL):
|
|
89
|
+
*
|
|
90
|
+
* ```sql
|
|
91
|
+
* create table `person` (
|
|
92
|
+
* `id` integer primary key
|
|
93
|
+
* )
|
|
44
94
|
*/
|
|
45
95
|
primaryKey() {
|
|
46
96
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { primaryKey: true }));
|
|
@@ -55,7 +105,18 @@ class ColumnDefinitionBuilder {
|
|
|
55
105
|
* ### Examples
|
|
56
106
|
*
|
|
57
107
|
* ```ts
|
|
58
|
-
*
|
|
108
|
+
* await db.schema
|
|
109
|
+
* .createTable('pet')
|
|
110
|
+
* .addColumn('owner_id', 'integer', (col) => col.references('person.id'))
|
|
111
|
+
* .execute()
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* The generated SQL (PostgreSQL):
|
|
115
|
+
*
|
|
116
|
+
* ```sql
|
|
117
|
+
* create table "pet" (
|
|
118
|
+
* "owner_id" integer references "person" ("id")
|
|
119
|
+
* )
|
|
59
120
|
* ```
|
|
60
121
|
*/
|
|
61
122
|
references(ref) {
|
|
@@ -79,7 +140,22 @@ class ColumnDefinitionBuilder {
|
|
|
79
140
|
* ### Examples
|
|
80
141
|
*
|
|
81
142
|
* ```ts
|
|
82
|
-
*
|
|
143
|
+
* await db.schema
|
|
144
|
+
* .createTable('pet')
|
|
145
|
+
* .addColumn(
|
|
146
|
+
* 'owner_id',
|
|
147
|
+
* 'integer',
|
|
148
|
+
* (col) => col.references('person.id').onDelete('cascade')
|
|
149
|
+
* )
|
|
150
|
+
* .execute()
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* The generated SQL (PostgreSQL):
|
|
154
|
+
*
|
|
155
|
+
* ```sql
|
|
156
|
+
* create table "pet" (
|
|
157
|
+
* "owner_id" integer references "person" ("id") on delete cascade
|
|
158
|
+
* )
|
|
83
159
|
* ```
|
|
84
160
|
*/
|
|
85
161
|
onDelete(onDelete) {
|
|
@@ -93,10 +169,29 @@ class ColumnDefinitionBuilder {
|
|
|
93
169
|
/**
|
|
94
170
|
* Adds an `on update` constraint for the foreign key column.
|
|
95
171
|
*
|
|
172
|
+
* If your database engine doesn't support foreign key constraints in the
|
|
173
|
+
* column definition (like MySQL 5) you need to call the table level
|
|
174
|
+
* {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
|
|
175
|
+
*
|
|
96
176
|
* ### Examples
|
|
97
177
|
*
|
|
98
178
|
* ```ts
|
|
99
|
-
*
|
|
179
|
+
* await db.schema
|
|
180
|
+
* .createTable('pet')
|
|
181
|
+
* .addColumn(
|
|
182
|
+
* 'owner_id',
|
|
183
|
+
* 'integer',
|
|
184
|
+
* (col) => col.references('person.id').onUpdate('cascade')
|
|
185
|
+
* )
|
|
186
|
+
* .execute()
|
|
187
|
+
* ```
|
|
188
|
+
*
|
|
189
|
+
* The generated SQL (PostgreSQL):
|
|
190
|
+
*
|
|
191
|
+
* ```sql
|
|
192
|
+
* create table "pet" (
|
|
193
|
+
* "owner_id" integer references "person" ("id") on update cascade
|
|
194
|
+
* )
|
|
100
195
|
* ```
|
|
101
196
|
*/
|
|
102
197
|
onUpdate(onUpdate) {
|
|
@@ -109,12 +204,46 @@ class ColumnDefinitionBuilder {
|
|
|
109
204
|
}
|
|
110
205
|
/**
|
|
111
206
|
* Adds a unique constraint for the column.
|
|
207
|
+
*
|
|
208
|
+
* ### Examples
|
|
209
|
+
*
|
|
210
|
+
* ```ts
|
|
211
|
+
* await db.schema
|
|
212
|
+
* .createTable('person')
|
|
213
|
+
* .addColumn('email', 'varchar(255)', col => col.unique())
|
|
214
|
+
* .execute()
|
|
215
|
+
* ```
|
|
216
|
+
*
|
|
217
|
+
* The generated SQL (MySQL):
|
|
218
|
+
*
|
|
219
|
+
* ```sql
|
|
220
|
+
* create table `person` (
|
|
221
|
+
* `email` varchar(255) unique
|
|
222
|
+
* )
|
|
223
|
+
* ```
|
|
112
224
|
*/
|
|
113
225
|
unique() {
|
|
114
226
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { unique: true }));
|
|
115
227
|
}
|
|
116
228
|
/**
|
|
117
229
|
* Adds a `not null` constraint for the column.
|
|
230
|
+
*
|
|
231
|
+
* ### Examples
|
|
232
|
+
*
|
|
233
|
+
* ```ts
|
|
234
|
+
* await db.schema
|
|
235
|
+
* .createTable('person')
|
|
236
|
+
* .addColumn('first_name', 'varchar(255)', col => col.notNull())
|
|
237
|
+
* .execute()
|
|
238
|
+
* ```
|
|
239
|
+
*
|
|
240
|
+
* The generated SQL (MySQL):
|
|
241
|
+
*
|
|
242
|
+
* ```sql
|
|
243
|
+
* create table `person` (
|
|
244
|
+
* `first_name` varchar(255) not null
|
|
245
|
+
* )
|
|
246
|
+
* ```
|
|
118
247
|
*/
|
|
119
248
|
notNull() {
|
|
120
249
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { notNull: true }));
|
|
@@ -123,6 +252,23 @@ class ColumnDefinitionBuilder {
|
|
|
123
252
|
* Adds a `unsigned` modifier for the column.
|
|
124
253
|
*
|
|
125
254
|
* This only works on some dialects like MySQL.
|
|
255
|
+
*
|
|
256
|
+
* ### Examples
|
|
257
|
+
*
|
|
258
|
+
* ```ts
|
|
259
|
+
* await db.schema
|
|
260
|
+
* .createTable('person')
|
|
261
|
+
* .addColumn('age', 'integer', col => col.unsigned())
|
|
262
|
+
* .execute()
|
|
263
|
+
* ```
|
|
264
|
+
*
|
|
265
|
+
* The generated SQL (MySQL):
|
|
266
|
+
*
|
|
267
|
+
* ```sql
|
|
268
|
+
* create table `person` (
|
|
269
|
+
* `age` integer unsigned
|
|
270
|
+
* )
|
|
271
|
+
* ```
|
|
126
272
|
*/
|
|
127
273
|
unsigned() {
|
|
128
274
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { unsigned: true }));
|
|
@@ -133,27 +279,43 @@ class ColumnDefinitionBuilder {
|
|
|
133
279
|
* ### Examples
|
|
134
280
|
*
|
|
135
281
|
* ```ts
|
|
136
|
-
* db.schema
|
|
282
|
+
* await db.schema
|
|
137
283
|
* .createTable('pet')
|
|
138
284
|
* .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
|
|
139
285
|
* .execute()
|
|
140
286
|
* ```
|
|
141
287
|
*
|
|
288
|
+
* The generated SQL (MySQL):
|
|
289
|
+
*
|
|
290
|
+
* ```sql
|
|
291
|
+
* create table `pet` (
|
|
292
|
+
* `number_of_legs` integer default 4
|
|
293
|
+
* )
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
142
296
|
* Values passed to `defaultTo` are interpreted as value literals by default. You can define
|
|
143
297
|
* an arbitrary SQL expression using the {@link sql} template tag:
|
|
144
298
|
*
|
|
145
299
|
* ```ts
|
|
146
300
|
* import { sql } from 'kysely'
|
|
147
301
|
*
|
|
148
|
-
* db.schema
|
|
302
|
+
* await db.schema
|
|
149
303
|
* .createTable('pet')
|
|
150
304
|
* .addColumn(
|
|
151
|
-
* '
|
|
152
|
-
* '
|
|
153
|
-
* (col) => col.defaultTo(sql`
|
|
305
|
+
* 'created_at',
|
|
306
|
+
* 'timestamp',
|
|
307
|
+
* (col) => col.defaultTo(sql`CURRENT_TIMESTAMP`)
|
|
154
308
|
* )
|
|
155
309
|
* .execute()
|
|
156
310
|
* ```
|
|
311
|
+
*
|
|
312
|
+
* The generated SQL (MySQL):
|
|
313
|
+
*
|
|
314
|
+
* ```sql
|
|
315
|
+
* create table `pet` (
|
|
316
|
+
* `created_at` timestamp default CURRENT_TIMESTAMP
|
|
317
|
+
* )
|
|
318
|
+
* ```
|
|
157
319
|
*/
|
|
158
320
|
defaultTo(value) {
|
|
159
321
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -168,13 +330,21 @@ class ColumnDefinitionBuilder {
|
|
|
168
330
|
* ```ts
|
|
169
331
|
* import { sql } from 'kysely'
|
|
170
332
|
*
|
|
171
|
-
* db.schema
|
|
333
|
+
* await db.schema
|
|
172
334
|
* .createTable('pet')
|
|
173
335
|
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
174
336
|
* col.check(sql`number_of_legs < 5`)
|
|
175
337
|
* )
|
|
176
338
|
* .execute()
|
|
177
339
|
* ```
|
|
340
|
+
*
|
|
341
|
+
* The generated SQL (MySQL):
|
|
342
|
+
*
|
|
343
|
+
* ```sql
|
|
344
|
+
* create table `pet` (
|
|
345
|
+
* `number_of_legs` integer check (number_of_legs < 5)
|
|
346
|
+
* )
|
|
347
|
+
* ```
|
|
178
348
|
*/
|
|
179
349
|
check(expression) {
|
|
180
350
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -189,13 +359,21 @@ class ColumnDefinitionBuilder {
|
|
|
189
359
|
* ```ts
|
|
190
360
|
* import { sql } from 'kysely'
|
|
191
361
|
*
|
|
192
|
-
* db.schema
|
|
362
|
+
* await db.schema
|
|
193
363
|
* .createTable('person')
|
|
194
364
|
* .addColumn('full_name', 'varchar(255)',
|
|
195
365
|
* (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
196
366
|
* )
|
|
197
367
|
* .execute()
|
|
198
368
|
* ```
|
|
369
|
+
*
|
|
370
|
+
* The generated SQL (MySQL):
|
|
371
|
+
*
|
|
372
|
+
* ```sql
|
|
373
|
+
* create table `person` (
|
|
374
|
+
* `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name))
|
|
375
|
+
* )
|
|
376
|
+
* ```
|
|
199
377
|
*/
|
|
200
378
|
generatedAlwaysAs(expression) {
|
|
201
379
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -208,6 +386,23 @@ class ColumnDefinitionBuilder {
|
|
|
208
386
|
* This only works on some dialects like PostgreSQL.
|
|
209
387
|
*
|
|
210
388
|
* For MS SQL Server (MSSQL)'s identity column use {@link identity}.
|
|
389
|
+
*
|
|
390
|
+
* ### Examples
|
|
391
|
+
*
|
|
392
|
+
* ```ts
|
|
393
|
+
* await db.schema
|
|
394
|
+
* .createTable('person')
|
|
395
|
+
* .addColumn('id', 'integer', col => col.generatedAlwaysAsIdentity().primaryKey())
|
|
396
|
+
* .execute()
|
|
397
|
+
* ```
|
|
398
|
+
*
|
|
399
|
+
* The generated SQL (PostgreSQL):
|
|
400
|
+
*
|
|
401
|
+
* ```sql
|
|
402
|
+
* create table "person" (
|
|
403
|
+
* "id" integer generated always as identity primary key
|
|
404
|
+
* )
|
|
405
|
+
* ```
|
|
211
406
|
*/
|
|
212
407
|
generatedAlwaysAsIdentity() {
|
|
213
408
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -216,6 +411,27 @@ class ColumnDefinitionBuilder {
|
|
|
216
411
|
}
|
|
217
412
|
/**
|
|
218
413
|
* Adds the `generated by default as identity` specifier on supported dialects.
|
|
414
|
+
*
|
|
415
|
+
* This only works on some dialects like PostgreSQL.
|
|
416
|
+
*
|
|
417
|
+
* For MS SQL Server (MSSQL)'s identity column use {@link identity}.
|
|
418
|
+
*
|
|
419
|
+
* ### Examples
|
|
420
|
+
*
|
|
421
|
+
* ```ts
|
|
422
|
+
* await db.schema
|
|
423
|
+
* .createTable('person')
|
|
424
|
+
* .addColumn('id', 'integer', col => col.generatedByDefaultAsIdentity().primaryKey())
|
|
425
|
+
* .execute()
|
|
426
|
+
* ```
|
|
427
|
+
*
|
|
428
|
+
* The generated SQL (PostgreSQL):
|
|
429
|
+
*
|
|
430
|
+
* ```sql
|
|
431
|
+
* create table "person" (
|
|
432
|
+
* "id" integer generated by default as identity primary key
|
|
433
|
+
* )
|
|
434
|
+
* ```
|
|
219
435
|
*/
|
|
220
436
|
generatedByDefaultAsIdentity() {
|
|
221
437
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -229,14 +445,24 @@ class ColumnDefinitionBuilder {
|
|
|
229
445
|
* ### Examples
|
|
230
446
|
*
|
|
231
447
|
* ```ts
|
|
232
|
-
*
|
|
448
|
+
* import { sql } from 'kysely'
|
|
449
|
+
*
|
|
450
|
+
* await db.schema
|
|
233
451
|
* .createTable('person')
|
|
234
452
|
* .addColumn('full_name', 'varchar(255)', (col) => col
|
|
235
|
-
* .generatedAlwaysAs(
|
|
453
|
+
* .generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
236
454
|
* .stored()
|
|
237
455
|
* )
|
|
238
456
|
* .execute()
|
|
239
457
|
* ```
|
|
458
|
+
*
|
|
459
|
+
* The generated SQL (MySQL):
|
|
460
|
+
*
|
|
461
|
+
* ```sql
|
|
462
|
+
* create table `person` (
|
|
463
|
+
* `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name)) stored
|
|
464
|
+
* )
|
|
465
|
+
* ```
|
|
240
466
|
*/
|
|
241
467
|
stored() {
|
|
242
468
|
if (!this.#node.generated) {
|
|
@@ -254,10 +480,17 @@ class ColumnDefinitionBuilder {
|
|
|
254
480
|
* ### Examples
|
|
255
481
|
*
|
|
256
482
|
* ```ts
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
483
|
+
* import { sql } from 'kysely'
|
|
484
|
+
*
|
|
485
|
+
* await db.schema
|
|
486
|
+
* .createTable('person')
|
|
487
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
488
|
+
* .addColumn(
|
|
489
|
+
* 'first_name',
|
|
490
|
+
* 'varchar(36)',
|
|
491
|
+
* (col) => col.modifyFront(sql`collate utf8mb4_general_ci`).notNull()
|
|
492
|
+
* )
|
|
493
|
+
* .execute()
|
|
261
494
|
* ```
|
|
262
495
|
*
|
|
263
496
|
* The generated SQL (MySQL):
|
|
@@ -281,10 +514,11 @@ class ColumnDefinitionBuilder {
|
|
|
281
514
|
* ### Examples
|
|
282
515
|
*
|
|
283
516
|
* ```ts
|
|
284
|
-
* db.schema
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
-
*
|
|
517
|
+
* db.schema
|
|
518
|
+
* .createTable('person')
|
|
519
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
520
|
+
* .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct())
|
|
521
|
+
* .execute()
|
|
288
522
|
* ```
|
|
289
523
|
*
|
|
290
524
|
* The generated SQL (PostgreSQL):
|
|
@@ -299,16 +533,46 @@ class ColumnDefinitionBuilder {
|
|
|
299
533
|
nullsNotDistinct() {
|
|
300
534
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true }));
|
|
301
535
|
}
|
|
536
|
+
/**
|
|
537
|
+
* Adds `if not exists` specifier. This only works for PostgreSQL.
|
|
538
|
+
*
|
|
539
|
+
* ### Examples
|
|
540
|
+
*
|
|
541
|
+
* ```ts
|
|
542
|
+
* await db.schema
|
|
543
|
+
* .alterTable('person')
|
|
544
|
+
* .addColumn('email', 'varchar(255)', col => col.unique().ifNotExists())
|
|
545
|
+
* .execute()
|
|
546
|
+
* ```
|
|
547
|
+
*
|
|
548
|
+
* The generated SQL (PostgreSQL):
|
|
549
|
+
*
|
|
550
|
+
* ```sql
|
|
551
|
+
* alter table "person" add column if not exists "email" varchar(255) unique
|
|
552
|
+
* ```
|
|
553
|
+
*/
|
|
554
|
+
ifNotExists() {
|
|
555
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { ifNotExists: true }));
|
|
556
|
+
}
|
|
302
557
|
/**
|
|
303
558
|
* This can be used to add any additional SQL to the end of the column definition.
|
|
304
559
|
*
|
|
305
560
|
* ### Examples
|
|
306
561
|
*
|
|
307
562
|
* ```ts
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
563
|
+
* import { sql } from 'kysely'
|
|
564
|
+
*
|
|
565
|
+
* await db.schema
|
|
566
|
+
* .createTable('person')
|
|
567
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
568
|
+
* .addColumn(
|
|
569
|
+
* 'age',
|
|
570
|
+
* 'integer',
|
|
571
|
+
* col => col.unsigned()
|
|
572
|
+
* .notNull()
|
|
573
|
+
* .modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`)
|
|
574
|
+
* )
|
|
575
|
+
* .execute()
|
|
312
576
|
* ```
|
|
313
577
|
*
|
|
314
578
|
* The generated SQL (MySQL):
|