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
|
@@ -20,6 +20,23 @@ export class ColumnDefinitionBuilder {
|
|
|
20
20
|
*
|
|
21
21
|
* Some dialects like PostgreSQL don't support this. On PostgreSQL
|
|
22
22
|
* you can use the `serial` or `bigserial` data type instead.
|
|
23
|
+
*
|
|
24
|
+
* ### Examples
|
|
25
|
+
*
|
|
26
|
+
* ```ts
|
|
27
|
+
* await db.schema
|
|
28
|
+
* .createTable('person')
|
|
29
|
+
* .addColumn('id', 'integer', col => col.autoIncrement().primaryKey())
|
|
30
|
+
* .execute()
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* The generated SQL (MySQL):
|
|
34
|
+
*
|
|
35
|
+
* ```sql
|
|
36
|
+
* create table `person` (
|
|
37
|
+
* `id` integer primary key auto_increment
|
|
38
|
+
* )
|
|
39
|
+
* ```
|
|
23
40
|
*/
|
|
24
41
|
autoIncrement() {
|
|
25
42
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
|
|
@@ -30,6 +47,23 @@ export class ColumnDefinitionBuilder {
|
|
|
30
47
|
* This only works on some dialects like MS SQL Server (MSSQL).
|
|
31
48
|
*
|
|
32
49
|
* For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
|
|
50
|
+
*
|
|
51
|
+
* ### Examples
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* await db.schema
|
|
55
|
+
* .createTable('person')
|
|
56
|
+
* .addColumn('id', 'integer', col => col.identity().primaryKey())
|
|
57
|
+
* .execute()
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* The generated SQL (MSSQL):
|
|
61
|
+
*
|
|
62
|
+
* ```sql
|
|
63
|
+
* create table "person" (
|
|
64
|
+
* "id" integer identity primary key
|
|
65
|
+
* )
|
|
66
|
+
* ```
|
|
33
67
|
*/
|
|
34
68
|
identity() {
|
|
35
69
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { identity: true }));
|
|
@@ -39,6 +73,22 @@ export class ColumnDefinitionBuilder {
|
|
|
39
73
|
*
|
|
40
74
|
* If you want to specify a composite primary key use the
|
|
41
75
|
* {@link CreateTableBuilder.addPrimaryKeyConstraint} method.
|
|
76
|
+
*
|
|
77
|
+
* ### Examples
|
|
78
|
+
*
|
|
79
|
+
* ```ts
|
|
80
|
+
* await db.schema
|
|
81
|
+
* .createTable('person')
|
|
82
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
83
|
+
* .execute()
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* The generated SQL (MySQL):
|
|
87
|
+
*
|
|
88
|
+
* ```sql
|
|
89
|
+
* create table `person` (
|
|
90
|
+
* `id` integer primary key
|
|
91
|
+
* )
|
|
42
92
|
*/
|
|
43
93
|
primaryKey() {
|
|
44
94
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { primaryKey: true }));
|
|
@@ -53,7 +103,18 @@ export class ColumnDefinitionBuilder {
|
|
|
53
103
|
* ### Examples
|
|
54
104
|
*
|
|
55
105
|
* ```ts
|
|
56
|
-
*
|
|
106
|
+
* await db.schema
|
|
107
|
+
* .createTable('pet')
|
|
108
|
+
* .addColumn('owner_id', 'integer', (col) => col.references('person.id'))
|
|
109
|
+
* .execute()
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* The generated SQL (PostgreSQL):
|
|
113
|
+
*
|
|
114
|
+
* ```sql
|
|
115
|
+
* create table "pet" (
|
|
116
|
+
* "owner_id" integer references "person" ("id")
|
|
117
|
+
* )
|
|
57
118
|
* ```
|
|
58
119
|
*/
|
|
59
120
|
references(ref) {
|
|
@@ -77,7 +138,22 @@ export class ColumnDefinitionBuilder {
|
|
|
77
138
|
* ### Examples
|
|
78
139
|
*
|
|
79
140
|
* ```ts
|
|
80
|
-
*
|
|
141
|
+
* await db.schema
|
|
142
|
+
* .createTable('pet')
|
|
143
|
+
* .addColumn(
|
|
144
|
+
* 'owner_id',
|
|
145
|
+
* 'integer',
|
|
146
|
+
* (col) => col.references('person.id').onDelete('cascade')
|
|
147
|
+
* )
|
|
148
|
+
* .execute()
|
|
149
|
+
* ```
|
|
150
|
+
*
|
|
151
|
+
* The generated SQL (PostgreSQL):
|
|
152
|
+
*
|
|
153
|
+
* ```sql
|
|
154
|
+
* create table "pet" (
|
|
155
|
+
* "owner_id" integer references "person" ("id") on delete cascade
|
|
156
|
+
* )
|
|
81
157
|
* ```
|
|
82
158
|
*/
|
|
83
159
|
onDelete(onDelete) {
|
|
@@ -91,10 +167,29 @@ export class ColumnDefinitionBuilder {
|
|
|
91
167
|
/**
|
|
92
168
|
* Adds an `on update` constraint for the foreign key column.
|
|
93
169
|
*
|
|
170
|
+
* If your database engine doesn't support foreign key constraints in the
|
|
171
|
+
* column definition (like MySQL 5) you need to call the table level
|
|
172
|
+
* {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
|
|
173
|
+
*
|
|
94
174
|
* ### Examples
|
|
95
175
|
*
|
|
96
176
|
* ```ts
|
|
97
|
-
*
|
|
177
|
+
* await db.schema
|
|
178
|
+
* .createTable('pet')
|
|
179
|
+
* .addColumn(
|
|
180
|
+
* 'owner_id',
|
|
181
|
+
* 'integer',
|
|
182
|
+
* (col) => col.references('person.id').onUpdate('cascade')
|
|
183
|
+
* )
|
|
184
|
+
* .execute()
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* The generated SQL (PostgreSQL):
|
|
188
|
+
*
|
|
189
|
+
* ```sql
|
|
190
|
+
* create table "pet" (
|
|
191
|
+
* "owner_id" integer references "person" ("id") on update cascade
|
|
192
|
+
* )
|
|
98
193
|
* ```
|
|
99
194
|
*/
|
|
100
195
|
onUpdate(onUpdate) {
|
|
@@ -107,12 +202,46 @@ export class ColumnDefinitionBuilder {
|
|
|
107
202
|
}
|
|
108
203
|
/**
|
|
109
204
|
* Adds a unique constraint for the column.
|
|
205
|
+
*
|
|
206
|
+
* ### Examples
|
|
207
|
+
*
|
|
208
|
+
* ```ts
|
|
209
|
+
* await db.schema
|
|
210
|
+
* .createTable('person')
|
|
211
|
+
* .addColumn('email', 'varchar(255)', col => col.unique())
|
|
212
|
+
* .execute()
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* The generated SQL (MySQL):
|
|
216
|
+
*
|
|
217
|
+
* ```sql
|
|
218
|
+
* create table `person` (
|
|
219
|
+
* `email` varchar(255) unique
|
|
220
|
+
* )
|
|
221
|
+
* ```
|
|
110
222
|
*/
|
|
111
223
|
unique() {
|
|
112
224
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { unique: true }));
|
|
113
225
|
}
|
|
114
226
|
/**
|
|
115
227
|
* Adds a `not null` constraint for the column.
|
|
228
|
+
*
|
|
229
|
+
* ### Examples
|
|
230
|
+
*
|
|
231
|
+
* ```ts
|
|
232
|
+
* await db.schema
|
|
233
|
+
* .createTable('person')
|
|
234
|
+
* .addColumn('first_name', 'varchar(255)', col => col.notNull())
|
|
235
|
+
* .execute()
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* The generated SQL (MySQL):
|
|
239
|
+
*
|
|
240
|
+
* ```sql
|
|
241
|
+
* create table `person` (
|
|
242
|
+
* `first_name` varchar(255) not null
|
|
243
|
+
* )
|
|
244
|
+
* ```
|
|
116
245
|
*/
|
|
117
246
|
notNull() {
|
|
118
247
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { notNull: true }));
|
|
@@ -121,6 +250,23 @@ export class ColumnDefinitionBuilder {
|
|
|
121
250
|
* Adds a `unsigned` modifier for the column.
|
|
122
251
|
*
|
|
123
252
|
* This only works on some dialects like MySQL.
|
|
253
|
+
*
|
|
254
|
+
* ### Examples
|
|
255
|
+
*
|
|
256
|
+
* ```ts
|
|
257
|
+
* await db.schema
|
|
258
|
+
* .createTable('person')
|
|
259
|
+
* .addColumn('age', 'integer', col => col.unsigned())
|
|
260
|
+
* .execute()
|
|
261
|
+
* ```
|
|
262
|
+
*
|
|
263
|
+
* The generated SQL (MySQL):
|
|
264
|
+
*
|
|
265
|
+
* ```sql
|
|
266
|
+
* create table `person` (
|
|
267
|
+
* `age` integer unsigned
|
|
268
|
+
* )
|
|
269
|
+
* ```
|
|
124
270
|
*/
|
|
125
271
|
unsigned() {
|
|
126
272
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { unsigned: true }));
|
|
@@ -131,27 +277,43 @@ export class ColumnDefinitionBuilder {
|
|
|
131
277
|
* ### Examples
|
|
132
278
|
*
|
|
133
279
|
* ```ts
|
|
134
|
-
* db.schema
|
|
280
|
+
* await db.schema
|
|
135
281
|
* .createTable('pet')
|
|
136
282
|
* .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
|
|
137
283
|
* .execute()
|
|
138
284
|
* ```
|
|
139
285
|
*
|
|
286
|
+
* The generated SQL (MySQL):
|
|
287
|
+
*
|
|
288
|
+
* ```sql
|
|
289
|
+
* create table `pet` (
|
|
290
|
+
* `number_of_legs` integer default 4
|
|
291
|
+
* )
|
|
292
|
+
* ```
|
|
293
|
+
*
|
|
140
294
|
* Values passed to `defaultTo` are interpreted as value literals by default. You can define
|
|
141
295
|
* an arbitrary SQL expression using the {@link sql} template tag:
|
|
142
296
|
*
|
|
143
297
|
* ```ts
|
|
144
298
|
* import { sql } from 'kysely'
|
|
145
299
|
*
|
|
146
|
-
* db.schema
|
|
300
|
+
* await db.schema
|
|
147
301
|
* .createTable('pet')
|
|
148
302
|
* .addColumn(
|
|
149
|
-
* '
|
|
150
|
-
* '
|
|
151
|
-
* (col) => col.defaultTo(sql`
|
|
303
|
+
* 'created_at',
|
|
304
|
+
* 'timestamp',
|
|
305
|
+
* (col) => col.defaultTo(sql`CURRENT_TIMESTAMP`)
|
|
152
306
|
* )
|
|
153
307
|
* .execute()
|
|
154
308
|
* ```
|
|
309
|
+
*
|
|
310
|
+
* The generated SQL (MySQL):
|
|
311
|
+
*
|
|
312
|
+
* ```sql
|
|
313
|
+
* create table `pet` (
|
|
314
|
+
* `created_at` timestamp default CURRENT_TIMESTAMP
|
|
315
|
+
* )
|
|
316
|
+
* ```
|
|
155
317
|
*/
|
|
156
318
|
defaultTo(value) {
|
|
157
319
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -166,13 +328,21 @@ export class ColumnDefinitionBuilder {
|
|
|
166
328
|
* ```ts
|
|
167
329
|
* import { sql } from 'kysely'
|
|
168
330
|
*
|
|
169
|
-
* db.schema
|
|
331
|
+
* await db.schema
|
|
170
332
|
* .createTable('pet')
|
|
171
333
|
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
172
334
|
* col.check(sql`number_of_legs < 5`)
|
|
173
335
|
* )
|
|
174
336
|
* .execute()
|
|
175
337
|
* ```
|
|
338
|
+
*
|
|
339
|
+
* The generated SQL (MySQL):
|
|
340
|
+
*
|
|
341
|
+
* ```sql
|
|
342
|
+
* create table `pet` (
|
|
343
|
+
* `number_of_legs` integer check (number_of_legs < 5)
|
|
344
|
+
* )
|
|
345
|
+
* ```
|
|
176
346
|
*/
|
|
177
347
|
check(expression) {
|
|
178
348
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -187,13 +357,21 @@ export class ColumnDefinitionBuilder {
|
|
|
187
357
|
* ```ts
|
|
188
358
|
* import { sql } from 'kysely'
|
|
189
359
|
*
|
|
190
|
-
* db.schema
|
|
360
|
+
* await db.schema
|
|
191
361
|
* .createTable('person')
|
|
192
362
|
* .addColumn('full_name', 'varchar(255)',
|
|
193
363
|
* (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
194
364
|
* )
|
|
195
365
|
* .execute()
|
|
196
366
|
* ```
|
|
367
|
+
*
|
|
368
|
+
* The generated SQL (MySQL):
|
|
369
|
+
*
|
|
370
|
+
* ```sql
|
|
371
|
+
* create table `person` (
|
|
372
|
+
* `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name))
|
|
373
|
+
* )
|
|
374
|
+
* ```
|
|
197
375
|
*/
|
|
198
376
|
generatedAlwaysAs(expression) {
|
|
199
377
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -206,6 +384,23 @@ export class ColumnDefinitionBuilder {
|
|
|
206
384
|
* This only works on some dialects like PostgreSQL.
|
|
207
385
|
*
|
|
208
386
|
* For MS SQL Server (MSSQL)'s identity column use {@link identity}.
|
|
387
|
+
*
|
|
388
|
+
* ### Examples
|
|
389
|
+
*
|
|
390
|
+
* ```ts
|
|
391
|
+
* await db.schema
|
|
392
|
+
* .createTable('person')
|
|
393
|
+
* .addColumn('id', 'integer', col => col.generatedAlwaysAsIdentity().primaryKey())
|
|
394
|
+
* .execute()
|
|
395
|
+
* ```
|
|
396
|
+
*
|
|
397
|
+
* The generated SQL (PostgreSQL):
|
|
398
|
+
*
|
|
399
|
+
* ```sql
|
|
400
|
+
* create table "person" (
|
|
401
|
+
* "id" integer generated always as identity primary key
|
|
402
|
+
* )
|
|
403
|
+
* ```
|
|
209
404
|
*/
|
|
210
405
|
generatedAlwaysAsIdentity() {
|
|
211
406
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -214,6 +409,27 @@ export class ColumnDefinitionBuilder {
|
|
|
214
409
|
}
|
|
215
410
|
/**
|
|
216
411
|
* Adds the `generated by default as identity` specifier on supported dialects.
|
|
412
|
+
*
|
|
413
|
+
* This only works on some dialects like PostgreSQL.
|
|
414
|
+
*
|
|
415
|
+
* For MS SQL Server (MSSQL)'s identity column use {@link identity}.
|
|
416
|
+
*
|
|
417
|
+
* ### Examples
|
|
418
|
+
*
|
|
419
|
+
* ```ts
|
|
420
|
+
* await db.schema
|
|
421
|
+
* .createTable('person')
|
|
422
|
+
* .addColumn('id', 'integer', col => col.generatedByDefaultAsIdentity().primaryKey())
|
|
423
|
+
* .execute()
|
|
424
|
+
* ```
|
|
425
|
+
*
|
|
426
|
+
* The generated SQL (PostgreSQL):
|
|
427
|
+
*
|
|
428
|
+
* ```sql
|
|
429
|
+
* create table "person" (
|
|
430
|
+
* "id" integer generated by default as identity primary key
|
|
431
|
+
* )
|
|
432
|
+
* ```
|
|
217
433
|
*/
|
|
218
434
|
generatedByDefaultAsIdentity() {
|
|
219
435
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -227,14 +443,24 @@ export class ColumnDefinitionBuilder {
|
|
|
227
443
|
* ### Examples
|
|
228
444
|
*
|
|
229
445
|
* ```ts
|
|
230
|
-
*
|
|
446
|
+
* import { sql } from 'kysely'
|
|
447
|
+
*
|
|
448
|
+
* await db.schema
|
|
231
449
|
* .createTable('person')
|
|
232
450
|
* .addColumn('full_name', 'varchar(255)', (col) => col
|
|
233
|
-
* .generatedAlwaysAs(
|
|
451
|
+
* .generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
234
452
|
* .stored()
|
|
235
453
|
* )
|
|
236
454
|
* .execute()
|
|
237
455
|
* ```
|
|
456
|
+
*
|
|
457
|
+
* The generated SQL (MySQL):
|
|
458
|
+
*
|
|
459
|
+
* ```sql
|
|
460
|
+
* create table `person` (
|
|
461
|
+
* `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name)) stored
|
|
462
|
+
* )
|
|
463
|
+
* ```
|
|
238
464
|
*/
|
|
239
465
|
stored() {
|
|
240
466
|
if (!this.#node.generated) {
|
|
@@ -252,10 +478,17 @@ export class ColumnDefinitionBuilder {
|
|
|
252
478
|
* ### Examples
|
|
253
479
|
*
|
|
254
480
|
* ```ts
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
481
|
+
* import { sql } from 'kysely'
|
|
482
|
+
*
|
|
483
|
+
* await db.schema
|
|
484
|
+
* .createTable('person')
|
|
485
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
486
|
+
* .addColumn(
|
|
487
|
+
* 'first_name',
|
|
488
|
+
* 'varchar(36)',
|
|
489
|
+
* (col) => col.modifyFront(sql`collate utf8mb4_general_ci`).notNull()
|
|
490
|
+
* )
|
|
491
|
+
* .execute()
|
|
259
492
|
* ```
|
|
260
493
|
*
|
|
261
494
|
* The generated SQL (MySQL):
|
|
@@ -279,10 +512,11 @@ export class ColumnDefinitionBuilder {
|
|
|
279
512
|
* ### Examples
|
|
280
513
|
*
|
|
281
514
|
* ```ts
|
|
282
|
-
* db.schema
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
515
|
+
* db.schema
|
|
516
|
+
* .createTable('person')
|
|
517
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
518
|
+
* .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct())
|
|
519
|
+
* .execute()
|
|
286
520
|
* ```
|
|
287
521
|
*
|
|
288
522
|
* The generated SQL (PostgreSQL):
|
|
@@ -297,16 +531,46 @@ export class ColumnDefinitionBuilder {
|
|
|
297
531
|
nullsNotDistinct() {
|
|
298
532
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true }));
|
|
299
533
|
}
|
|
534
|
+
/**
|
|
535
|
+
* Adds `if not exists` specifier. This only works for PostgreSQL.
|
|
536
|
+
*
|
|
537
|
+
* ### Examples
|
|
538
|
+
*
|
|
539
|
+
* ```ts
|
|
540
|
+
* await db.schema
|
|
541
|
+
* .alterTable('person')
|
|
542
|
+
* .addColumn('email', 'varchar(255)', col => col.unique().ifNotExists())
|
|
543
|
+
* .execute()
|
|
544
|
+
* ```
|
|
545
|
+
*
|
|
546
|
+
* The generated SQL (PostgreSQL):
|
|
547
|
+
*
|
|
548
|
+
* ```sql
|
|
549
|
+
* alter table "person" add column if not exists "email" varchar(255) unique
|
|
550
|
+
* ```
|
|
551
|
+
*/
|
|
552
|
+
ifNotExists() {
|
|
553
|
+
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { ifNotExists: true }));
|
|
554
|
+
}
|
|
300
555
|
/**
|
|
301
556
|
* This can be used to add any additional SQL to the end of the column definition.
|
|
302
557
|
*
|
|
303
558
|
* ### Examples
|
|
304
559
|
*
|
|
305
560
|
* ```ts
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
561
|
+
* import { sql } from 'kysely'
|
|
562
|
+
*
|
|
563
|
+
* await db.schema
|
|
564
|
+
* .createTable('person')
|
|
565
|
+
* .addColumn('id', 'integer', col => col.primaryKey())
|
|
566
|
+
* .addColumn(
|
|
567
|
+
* 'age',
|
|
568
|
+
* 'integer',
|
|
569
|
+
* col => col.unsigned()
|
|
570
|
+
* .notNull()
|
|
571
|
+
* .modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`)
|
|
572
|
+
* )
|
|
573
|
+
* .execute()
|
|
310
574
|
* ```
|
|
311
575
|
*
|
|
312
576
|
* The generated SQL (MySQL):
|