knex 0.21.20 → 0.21.21
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/CHANGELOG.md +6 -0
- package/CONTRIBUTING.md +184 -184
- package/LICENSE +22 -22
- package/README.md +95 -95
- package/bin/cli.js +414 -414
- package/bin/utils/cli-config-utils.js +151 -151
- package/bin/utils/constants.js +7 -7
- package/bin/utils/migrationsLister.js +37 -37
- package/knex.js +8 -8
- package/lib/client.js +413 -413
- package/lib/config-resolver.js +61 -61
- package/lib/constants.js +44 -44
- package/lib/dialects/mssql/index.js +390 -390
- package/lib/dialects/mssql/query/compiler.js +444 -444
- package/lib/dialects/mssql/schema/columncompiler.js +103 -103
- package/lib/dialects/mssql/schema/compiler.js +59 -59
- package/lib/dialects/mssql/schema/tablecompiler.js +245 -245
- package/lib/dialects/mssql/transaction.js +97 -97
- package/lib/dialects/mysql/index.js +191 -191
- package/lib/dialects/mysql/query/compiler.js +142 -142
- package/lib/dialects/mysql/schema/columncompiler.js +171 -171
- package/lib/dialects/mysql/schema/compiler.js +60 -60
- package/lib/dialects/mysql/schema/tablecompiler.js +262 -262
- package/lib/dialects/mysql/transaction.js +48 -48
- package/lib/dialects/mysql2/index.js +35 -35
- package/lib/dialects/mysql2/transaction.js +46 -46
- package/lib/dialects/oracle/DEAD_CODE.md +5 -5
- package/lib/dialects/oracle/formatter.js +20 -20
- package/lib/dialects/oracle/index.js +79 -79
- package/lib/dialects/oracle/query/compiler.js +327 -327
- package/lib/dialects/oracle/schema/columnbuilder.js +18 -18
- package/lib/dialects/oracle/schema/columncompiler.js +139 -139
- package/lib/dialects/oracle/schema/compiler.js +81 -81
- package/lib/dialects/oracle/schema/tablecompiler.js +165 -165
- package/lib/dialects/oracle/schema/trigger.js +126 -126
- package/lib/dialects/oracle/utils.js +86 -86
- package/lib/dialects/oracledb/index.js +489 -489
- package/lib/dialects/oracledb/query/compiler.js +363 -363
- package/lib/dialects/oracledb/schema/columncompiler.js +35 -35
- package/lib/dialects/oracledb/transaction.js +76 -76
- package/lib/dialects/oracledb/utils.js +14 -14
- package/lib/dialects/postgres/index.js +319 -319
- package/lib/dialects/postgres/query/compiler.js +206 -206
- package/lib/dialects/postgres/schema/columncompiler.js +125 -125
- package/lib/dialects/postgres/schema/compiler.js +109 -109
- package/lib/dialects/postgres/schema/tablecompiler.js +183 -183
- package/lib/dialects/redshift/index.js +73 -73
- package/lib/dialects/redshift/query/compiler.js +119 -119
- package/lib/dialects/redshift/schema/columnbuilder.js +20 -20
- package/lib/dialects/redshift/schema/columncompiler.js +60 -60
- package/lib/dialects/redshift/schema/compiler.js +14 -14
- package/lib/dialects/redshift/schema/tablecompiler.js +123 -123
- package/lib/dialects/redshift/transaction.js +18 -18
- package/lib/dialects/sqlite3/formatter.js +21 -21
- package/lib/dialects/sqlite3/index.js +169 -169
- package/lib/dialects/sqlite3/query/compiler.js +222 -222
- package/lib/dialects/sqlite3/schema/columncompiler.js +27 -27
- package/lib/dialects/sqlite3/schema/compiler.js +49 -49
- package/lib/dialects/sqlite3/schema/ddl.js +525 -525
- package/lib/dialects/sqlite3/schema/tablecompiler.js +238 -238
- package/lib/formatter.js +295 -295
- package/lib/functionhelper.js +14 -14
- package/lib/helpers.js +92 -92
- package/lib/index.js +3 -3
- package/lib/interface.js +115 -115
- package/lib/knex.js +42 -42
- package/lib/logger.js +76 -76
- package/lib/migrate/MigrationGenerator.js +82 -82
- package/lib/migrate/Migrator.js +611 -611
- package/lib/migrate/configuration-merger.js +60 -60
- package/lib/migrate/migrate-stub.js +17 -17
- package/lib/migrate/migration-list-resolver.js +36 -36
- package/lib/migrate/sources/fs-migrations.js +99 -99
- package/lib/migrate/stub/cjs.stub +15 -15
- package/lib/migrate/stub/coffee.stub +13 -13
- package/lib/migrate/stub/eg.stub +14 -14
- package/lib/migrate/stub/js.stub +15 -15
- package/lib/migrate/stub/knexfile-coffee.stub +34 -34
- package/lib/migrate/stub/knexfile-eg.stub +43 -43
- package/lib/migrate/stub/knexfile-js.stub +44 -44
- package/lib/migrate/stub/knexfile-ls.stub +35 -35
- package/lib/migrate/stub/knexfile-ts.stub +44 -44
- package/lib/migrate/stub/ls.stub +14 -14
- package/lib/migrate/stub/ts.stub +21 -21
- package/lib/migrate/table-creator.js +67 -67
- package/lib/migrate/table-resolver.js +27 -27
- package/lib/query/builder.js +1372 -1372
- package/lib/query/compiler.js +889 -889
- package/lib/query/constants.js +13 -13
- package/lib/query/joinclause.js +263 -263
- package/lib/query/methods.js +92 -92
- package/lib/query/string.js +190 -190
- package/lib/raw.js +188 -188
- package/lib/ref.js +39 -39
- package/lib/runner.js +285 -285
- package/lib/schema/builder.js +82 -82
- package/lib/schema/columnbuilder.js +117 -117
- package/lib/schema/columncompiler.js +177 -177
- package/lib/schema/compiler.js +101 -101
- package/lib/schema/helpers.js +51 -51
- package/lib/schema/tablebuilder.js +288 -288
- package/lib/schema/tablecompiler.js +296 -296
- package/lib/seed/Seeder.js +203 -203
- package/lib/seed/seed-stub.js +13 -13
- package/lib/seed/stub/coffee.stub +9 -9
- package/lib/seed/stub/eg.stub +11 -11
- package/lib/seed/stub/js.stub +13 -13
- package/lib/seed/stub/ls.stub +11 -11
- package/lib/seed/stub/ts.stub +13 -13
- package/lib/transaction.js +363 -363
- package/lib/util/batchInsert.js +59 -59
- package/lib/util/delay.js +6 -6
- package/lib/util/fake-client.js +9 -9
- package/lib/util/finally-mixin.js +13 -13
- package/lib/util/fs.js +76 -76
- package/lib/util/import-file.js +13 -13
- package/lib/util/is-module-type.js +14 -14
- package/lib/util/is.js +32 -32
- package/lib/util/make-knex.js +338 -338
- package/lib/util/nanoid.js +29 -29
- package/lib/util/noop.js +1 -1
- package/lib/util/parse-connection.js +66 -66
- package/lib/util/save-async-stack.js +14 -14
- package/lib/util/template.js +52 -52
- package/lib/util/timeout.js +29 -29
- package/lib/util/timestamp.js +16 -16
- package/package.json +1 -1
- package/scripts/build.js +125 -125
- package/scripts/docker-compose.yml +111 -111
- package/scripts/next-release-howto.md +24 -24
- package/scripts/release.sh +34 -34
- package/scripts/runkit-example.js +34 -34
- package/scripts/stress-test/README.txt +18 -18
- package/scripts/stress-test/docker-compose.yml +47 -47
- package/scripts/stress-test/knex-stress-test.js +196 -196
- package/scripts/stress-test/mysql2-random-hanging-every-now-and-then.js +145 -145
- package/scripts/stress-test/mysql2-sudden-exit-without-error.js +100 -100
- package/scripts/stress-test/reconnect-test-mysql-based-drivers.js +184 -184
- package/types/index.d.ts +2249 -2249
- package/types/result.d.ts +27 -27
- package/types/tables.d.ts +4 -4
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
// MySQL Column Compiler
|
|
2
|
-
// -------
|
|
3
|
-
const { inherits } = require('util');
|
|
4
|
-
const ColumnCompiler = require('../../../schema/columncompiler');
|
|
5
|
-
|
|
6
|
-
function ColumnCompiler_MSSQL() {
|
|
7
|
-
ColumnCompiler.apply(this, arguments);
|
|
8
|
-
this.modifiers = ['nullable', 'defaultTo', 'first', 'after', 'comment'];
|
|
9
|
-
}
|
|
10
|
-
inherits(ColumnCompiler_MSSQL, ColumnCompiler);
|
|
11
|
-
|
|
12
|
-
// Types
|
|
13
|
-
// ------
|
|
14
|
-
|
|
15
|
-
Object.assign(ColumnCompiler_MSSQL.prototype, {
|
|
16
|
-
increments: 'int identity(1,1) not null primary key',
|
|
17
|
-
|
|
18
|
-
bigincrements: 'bigint identity(1,1) not null primary key',
|
|
19
|
-
|
|
20
|
-
bigint: 'bigint',
|
|
21
|
-
|
|
22
|
-
double(precision, scale) {
|
|
23
|
-
return 'float';
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
floating(precision, scale) {
|
|
27
|
-
// ignore precicion / scale which is mysql specific stuff
|
|
28
|
-
return `float`;
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
integer() {
|
|
32
|
-
// mssql does not support length
|
|
33
|
-
return 'int';
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
mediumint: 'int',
|
|
37
|
-
|
|
38
|
-
smallint: 'smallint',
|
|
39
|
-
|
|
40
|
-
tinyint() {
|
|
41
|
-
// mssql does not support length
|
|
42
|
-
return 'tinyint';
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
varchar(length) {
|
|
46
|
-
return `nvarchar(${this._num(length, 255)})`;
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
text: 'nvarchar(max)',
|
|
50
|
-
|
|
51
|
-
mediumtext: 'nvarchar(max)',
|
|
52
|
-
|
|
53
|
-
longtext: 'nvarchar(max)',
|
|
54
|
-
|
|
55
|
-
// TODO: mssql supports check constraints as of SQL Server 2008
|
|
56
|
-
// so make enu here more like postgres
|
|
57
|
-
enu: 'nvarchar(100)',
|
|
58
|
-
|
|
59
|
-
uuid: 'uniqueidentifier',
|
|
60
|
-
|
|
61
|
-
datetime: 'datetime2',
|
|
62
|
-
|
|
63
|
-
timestamp({ useTz = false } = {}) {
|
|
64
|
-
return useTz ? 'datetimeoffset' : 'datetime2';
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
bit(length) {
|
|
68
|
-
if (length > 1) {
|
|
69
|
-
this.client.logger.warn('Bit field is exactly 1 bit length for MSSQL');
|
|
70
|
-
}
|
|
71
|
-
return 'bit';
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
binary(length) {
|
|
75
|
-
return length ? `varbinary(${this._num(length)})` : 'varbinary(max)';
|
|
76
|
-
},
|
|
77
|
-
|
|
78
|
-
bool: 'bit',
|
|
79
|
-
|
|
80
|
-
// Modifiers
|
|
81
|
-
// ------
|
|
82
|
-
|
|
83
|
-
first() {
|
|
84
|
-
this.client.logger.warn('Column first modifier not available for MSSQL');
|
|
85
|
-
return '';
|
|
86
|
-
},
|
|
87
|
-
|
|
88
|
-
after(column) {
|
|
89
|
-
this.client.logger.warn('Column after modifier not available for MSSQL');
|
|
90
|
-
return '';
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
comment(comment) {
|
|
94
|
-
if (comment && comment.length > 255) {
|
|
95
|
-
this.client.logger.warn(
|
|
96
|
-
'Your comment is longer than the max comment length for MSSQL'
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
return '';
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
module.exports = ColumnCompiler_MSSQL;
|
|
1
|
+
// MySQL Column Compiler
|
|
2
|
+
// -------
|
|
3
|
+
const { inherits } = require('util');
|
|
4
|
+
const ColumnCompiler = require('../../../schema/columncompiler');
|
|
5
|
+
|
|
6
|
+
function ColumnCompiler_MSSQL() {
|
|
7
|
+
ColumnCompiler.apply(this, arguments);
|
|
8
|
+
this.modifiers = ['nullable', 'defaultTo', 'first', 'after', 'comment'];
|
|
9
|
+
}
|
|
10
|
+
inherits(ColumnCompiler_MSSQL, ColumnCompiler);
|
|
11
|
+
|
|
12
|
+
// Types
|
|
13
|
+
// ------
|
|
14
|
+
|
|
15
|
+
Object.assign(ColumnCompiler_MSSQL.prototype, {
|
|
16
|
+
increments: 'int identity(1,1) not null primary key',
|
|
17
|
+
|
|
18
|
+
bigincrements: 'bigint identity(1,1) not null primary key',
|
|
19
|
+
|
|
20
|
+
bigint: 'bigint',
|
|
21
|
+
|
|
22
|
+
double(precision, scale) {
|
|
23
|
+
return 'float';
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
floating(precision, scale) {
|
|
27
|
+
// ignore precicion / scale which is mysql specific stuff
|
|
28
|
+
return `float`;
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
integer() {
|
|
32
|
+
// mssql does not support length
|
|
33
|
+
return 'int';
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
mediumint: 'int',
|
|
37
|
+
|
|
38
|
+
smallint: 'smallint',
|
|
39
|
+
|
|
40
|
+
tinyint() {
|
|
41
|
+
// mssql does not support length
|
|
42
|
+
return 'tinyint';
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
varchar(length) {
|
|
46
|
+
return `nvarchar(${this._num(length, 255)})`;
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
text: 'nvarchar(max)',
|
|
50
|
+
|
|
51
|
+
mediumtext: 'nvarchar(max)',
|
|
52
|
+
|
|
53
|
+
longtext: 'nvarchar(max)',
|
|
54
|
+
|
|
55
|
+
// TODO: mssql supports check constraints as of SQL Server 2008
|
|
56
|
+
// so make enu here more like postgres
|
|
57
|
+
enu: 'nvarchar(100)',
|
|
58
|
+
|
|
59
|
+
uuid: 'uniqueidentifier',
|
|
60
|
+
|
|
61
|
+
datetime: 'datetime2',
|
|
62
|
+
|
|
63
|
+
timestamp({ useTz = false } = {}) {
|
|
64
|
+
return useTz ? 'datetimeoffset' : 'datetime2';
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
bit(length) {
|
|
68
|
+
if (length > 1) {
|
|
69
|
+
this.client.logger.warn('Bit field is exactly 1 bit length for MSSQL');
|
|
70
|
+
}
|
|
71
|
+
return 'bit';
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
binary(length) {
|
|
75
|
+
return length ? `varbinary(${this._num(length)})` : 'varbinary(max)';
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
bool: 'bit',
|
|
79
|
+
|
|
80
|
+
// Modifiers
|
|
81
|
+
// ------
|
|
82
|
+
|
|
83
|
+
first() {
|
|
84
|
+
this.client.logger.warn('Column first modifier not available for MSSQL');
|
|
85
|
+
return '';
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
after(column) {
|
|
89
|
+
this.client.logger.warn('Column after modifier not available for MSSQL');
|
|
90
|
+
return '';
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
comment(comment) {
|
|
94
|
+
if (comment && comment.length > 255) {
|
|
95
|
+
this.client.logger.warn(
|
|
96
|
+
'Your comment is longer than the max comment length for MSSQL'
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
return '';
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
module.exports = ColumnCompiler_MSSQL;
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
// MySQL Schema Compiler
|
|
2
|
-
// -------
|
|
3
|
-
const { inherits } = require('util');
|
|
4
|
-
const SchemaCompiler = require('../../../schema/compiler');
|
|
5
|
-
|
|
6
|
-
function SchemaCompiler_MSSQL(client, builder) {
|
|
7
|
-
SchemaCompiler.call(this, client, builder);
|
|
8
|
-
}
|
|
9
|
-
inherits(SchemaCompiler_MSSQL, SchemaCompiler);
|
|
10
|
-
|
|
11
|
-
Object.assign(SchemaCompiler_MSSQL.prototype, {
|
|
12
|
-
dropTablePrefix: 'DROP TABLE ',
|
|
13
|
-
dropTableIfExists(tableName) {
|
|
14
|
-
const name = this.formatter.wrap(prefixedTableName(this.schema, tableName));
|
|
15
|
-
this.pushQuery(
|
|
16
|
-
`if object_id('${name}', 'U') is not null DROP TABLE ${name}`
|
|
17
|
-
);
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
// Rename a table on the schema.
|
|
21
|
-
renameTable(tableName, to) {
|
|
22
|
-
this.pushQuery(
|
|
23
|
-
`exec sp_rename ${this.formatter.parameter(
|
|
24
|
-
prefixedTableName(this.schema, tableName)
|
|
25
|
-
)}, ${this.formatter.parameter(to)}`
|
|
26
|
-
);
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
// Check whether a table exists on the query.
|
|
30
|
-
hasTable(tableName) {
|
|
31
|
-
const formattedTable = this.formatter.parameter(
|
|
32
|
-
this.formatter.wrap(prefixedTableName(this.schema, tableName))
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
const sql =
|
|
36
|
-
`select object_id from sys.tables ` +
|
|
37
|
-
`where object_id = object_id(${formattedTable})`;
|
|
38
|
-
this.pushQuery({ sql, output: (resp) => resp.length > 0 });
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
// Check whether a column exists on the schema.
|
|
42
|
-
hasColumn(tableName, column) {
|
|
43
|
-
const formattedColumn = this.formatter.parameter(column);
|
|
44
|
-
const formattedTable = this.formatter.parameter(
|
|
45
|
-
this.formatter.wrap(prefixedTableName(this.schema, tableName))
|
|
46
|
-
);
|
|
47
|
-
const sql =
|
|
48
|
-
`select object_id from sys.columns ` +
|
|
49
|
-
`where name = ${formattedColumn} ` +
|
|
50
|
-
`and object_id = object_id(${formattedTable})`;
|
|
51
|
-
this.pushQuery({ sql, output: (resp) => resp.length > 0 });
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
function prefixedTableName(prefix, table) {
|
|
56
|
-
return prefix ? `${prefix}.${table}` : table;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
module.exports = SchemaCompiler_MSSQL;
|
|
1
|
+
// MySQL Schema Compiler
|
|
2
|
+
// -------
|
|
3
|
+
const { inherits } = require('util');
|
|
4
|
+
const SchemaCompiler = require('../../../schema/compiler');
|
|
5
|
+
|
|
6
|
+
function SchemaCompiler_MSSQL(client, builder) {
|
|
7
|
+
SchemaCompiler.call(this, client, builder);
|
|
8
|
+
}
|
|
9
|
+
inherits(SchemaCompiler_MSSQL, SchemaCompiler);
|
|
10
|
+
|
|
11
|
+
Object.assign(SchemaCompiler_MSSQL.prototype, {
|
|
12
|
+
dropTablePrefix: 'DROP TABLE ',
|
|
13
|
+
dropTableIfExists(tableName) {
|
|
14
|
+
const name = this.formatter.wrap(prefixedTableName(this.schema, tableName));
|
|
15
|
+
this.pushQuery(
|
|
16
|
+
`if object_id('${name}', 'U') is not null DROP TABLE ${name}`
|
|
17
|
+
);
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
// Rename a table on the schema.
|
|
21
|
+
renameTable(tableName, to) {
|
|
22
|
+
this.pushQuery(
|
|
23
|
+
`exec sp_rename ${this.formatter.parameter(
|
|
24
|
+
prefixedTableName(this.schema, tableName)
|
|
25
|
+
)}, ${this.formatter.parameter(to)}`
|
|
26
|
+
);
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
// Check whether a table exists on the query.
|
|
30
|
+
hasTable(tableName) {
|
|
31
|
+
const formattedTable = this.formatter.parameter(
|
|
32
|
+
this.formatter.wrap(prefixedTableName(this.schema, tableName))
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
const sql =
|
|
36
|
+
`select object_id from sys.tables ` +
|
|
37
|
+
`where object_id = object_id(${formattedTable})`;
|
|
38
|
+
this.pushQuery({ sql, output: (resp) => resp.length > 0 });
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
// Check whether a column exists on the schema.
|
|
42
|
+
hasColumn(tableName, column) {
|
|
43
|
+
const formattedColumn = this.formatter.parameter(column);
|
|
44
|
+
const formattedTable = this.formatter.parameter(
|
|
45
|
+
this.formatter.wrap(prefixedTableName(this.schema, tableName))
|
|
46
|
+
);
|
|
47
|
+
const sql =
|
|
48
|
+
`select object_id from sys.columns ` +
|
|
49
|
+
`where name = ${formattedColumn} ` +
|
|
50
|
+
`and object_id = object_id(${formattedTable})`;
|
|
51
|
+
this.pushQuery({ sql, output: (resp) => resp.length > 0 });
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
function prefixedTableName(prefix, table) {
|
|
56
|
+
return prefix ? `${prefix}.${table}` : table;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = SchemaCompiler_MSSQL;
|