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,35 +1,35 @@
|
|
|
1
|
-
const { inherits } = require('util');
|
|
2
|
-
const ColumnCompiler_Oracle = require('../../oracle/schema/columncompiler');
|
|
3
|
-
const { isObject } = require('../../../util/is');
|
|
4
|
-
|
|
5
|
-
function ColumnCompiler_Oracledb() {
|
|
6
|
-
ColumnCompiler_Oracle.apply(this, arguments);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
inherits(ColumnCompiler_Oracledb, ColumnCompiler_Oracle);
|
|
10
|
-
|
|
11
|
-
Object.assign(ColumnCompiler_Oracledb.prototype, {
|
|
12
|
-
time: 'timestamp with local time zone',
|
|
13
|
-
|
|
14
|
-
datetime: function (withoutTz) {
|
|
15
|
-
let useTz;
|
|
16
|
-
if (isObject(withoutTz)) {
|
|
17
|
-
({ useTz } = withoutTz);
|
|
18
|
-
} else {
|
|
19
|
-
useTz = !withoutTz;
|
|
20
|
-
}
|
|
21
|
-
return useTz ? 'timestamp with local time zone' : 'timestamp';
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
timestamp: function (withoutTz) {
|
|
25
|
-
let useTz;
|
|
26
|
-
if (isObject(withoutTz)) {
|
|
27
|
-
({ useTz } = withoutTz);
|
|
28
|
-
} else {
|
|
29
|
-
useTz = !withoutTz;
|
|
30
|
-
}
|
|
31
|
-
return useTz ? 'timestamp with local time zone' : 'timestamp';
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
module.exports = ColumnCompiler_Oracledb;
|
|
1
|
+
const { inherits } = require('util');
|
|
2
|
+
const ColumnCompiler_Oracle = require('../../oracle/schema/columncompiler');
|
|
3
|
+
const { isObject } = require('../../../util/is');
|
|
4
|
+
|
|
5
|
+
function ColumnCompiler_Oracledb() {
|
|
6
|
+
ColumnCompiler_Oracle.apply(this, arguments);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
inherits(ColumnCompiler_Oracledb, ColumnCompiler_Oracle);
|
|
10
|
+
|
|
11
|
+
Object.assign(ColumnCompiler_Oracledb.prototype, {
|
|
12
|
+
time: 'timestamp with local time zone',
|
|
13
|
+
|
|
14
|
+
datetime: function (withoutTz) {
|
|
15
|
+
let useTz;
|
|
16
|
+
if (isObject(withoutTz)) {
|
|
17
|
+
({ useTz } = withoutTz);
|
|
18
|
+
} else {
|
|
19
|
+
useTz = !withoutTz;
|
|
20
|
+
}
|
|
21
|
+
return useTz ? 'timestamp with local time zone' : 'timestamp';
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
timestamp: function (withoutTz) {
|
|
25
|
+
let useTz;
|
|
26
|
+
if (isObject(withoutTz)) {
|
|
27
|
+
({ useTz } = withoutTz);
|
|
28
|
+
} else {
|
|
29
|
+
useTz = !withoutTz;
|
|
30
|
+
}
|
|
31
|
+
return useTz ? 'timestamp with local time zone' : 'timestamp';
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
module.exports = ColumnCompiler_Oracledb;
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
const Transaction = require('../../transaction');
|
|
2
|
-
const { timeout, KnexTimeoutError } = require('../../util/timeout');
|
|
3
|
-
const debugTx = require('debug')('knex:tx');
|
|
4
|
-
|
|
5
|
-
module.exports = class Oracle_Transaction extends Transaction {
|
|
6
|
-
// disable autocommit to allow correct behavior (default is true)
|
|
7
|
-
begin() {
|
|
8
|
-
return Promise.resolve();
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async commit(conn, value) {
|
|
12
|
-
this._completed = true;
|
|
13
|
-
try {
|
|
14
|
-
await conn.commitAsync();
|
|
15
|
-
this._resolver(value);
|
|
16
|
-
} catch (err) {
|
|
17
|
-
this._rejecter(err);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
release(conn, value) {
|
|
22
|
-
return this._resolver(value);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
rollback(conn, err) {
|
|
26
|
-
this._completed = true;
|
|
27
|
-
debugTx('%s: rolling back', this.txid);
|
|
28
|
-
return timeout(conn.rollbackAsync(), 5000)
|
|
29
|
-
.catch((e) => {
|
|
30
|
-
if (!(e instanceof KnexTimeoutError)) {
|
|
31
|
-
return Promise.reject(e);
|
|
32
|
-
}
|
|
33
|
-
this._rejecter(e);
|
|
34
|
-
})
|
|
35
|
-
.then(() => {
|
|
36
|
-
if (err === undefined) {
|
|
37
|
-
if (this.doNotRejectOnRollback) {
|
|
38
|
-
this._resolver();
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
err = new Error(`Transaction rejected with non-error: ${err}`);
|
|
42
|
-
}
|
|
43
|
-
this._rejecter(err);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
savepoint(conn) {
|
|
48
|
-
return this.query(conn, `SAVEPOINT ${this.txid}`);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async acquireConnection(config, cb) {
|
|
52
|
-
const configConnection = config && config.connection;
|
|
53
|
-
|
|
54
|
-
const connection =
|
|
55
|
-
configConnection || (await this.client.acquireConnection());
|
|
56
|
-
try {
|
|
57
|
-
connection.__knexTxId = this.txid;
|
|
58
|
-
connection.isTransaction = true;
|
|
59
|
-
return await cb(connection);
|
|
60
|
-
} finally {
|
|
61
|
-
debugTx('%s: releasing connection', this.txid);
|
|
62
|
-
connection.isTransaction = false;
|
|
63
|
-
try {
|
|
64
|
-
await connection.commitAsync();
|
|
65
|
-
} catch (err) {
|
|
66
|
-
this._rejecter(err);
|
|
67
|
-
} finally {
|
|
68
|
-
if (!configConnection) {
|
|
69
|
-
await this.client.releaseConnection(connection);
|
|
70
|
-
} else {
|
|
71
|
-
debugTx('%s: not releasing external connection', this.txid);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
1
|
+
const Transaction = require('../../transaction');
|
|
2
|
+
const { timeout, KnexTimeoutError } = require('../../util/timeout');
|
|
3
|
+
const debugTx = require('debug')('knex:tx');
|
|
4
|
+
|
|
5
|
+
module.exports = class Oracle_Transaction extends Transaction {
|
|
6
|
+
// disable autocommit to allow correct behavior (default is true)
|
|
7
|
+
begin() {
|
|
8
|
+
return Promise.resolve();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async commit(conn, value) {
|
|
12
|
+
this._completed = true;
|
|
13
|
+
try {
|
|
14
|
+
await conn.commitAsync();
|
|
15
|
+
this._resolver(value);
|
|
16
|
+
} catch (err) {
|
|
17
|
+
this._rejecter(err);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
release(conn, value) {
|
|
22
|
+
return this._resolver(value);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
rollback(conn, err) {
|
|
26
|
+
this._completed = true;
|
|
27
|
+
debugTx('%s: rolling back', this.txid);
|
|
28
|
+
return timeout(conn.rollbackAsync(), 5000)
|
|
29
|
+
.catch((e) => {
|
|
30
|
+
if (!(e instanceof KnexTimeoutError)) {
|
|
31
|
+
return Promise.reject(e);
|
|
32
|
+
}
|
|
33
|
+
this._rejecter(e);
|
|
34
|
+
})
|
|
35
|
+
.then(() => {
|
|
36
|
+
if (err === undefined) {
|
|
37
|
+
if (this.doNotRejectOnRollback) {
|
|
38
|
+
this._resolver();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
err = new Error(`Transaction rejected with non-error: ${err}`);
|
|
42
|
+
}
|
|
43
|
+
this._rejecter(err);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
savepoint(conn) {
|
|
48
|
+
return this.query(conn, `SAVEPOINT ${this.txid}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async acquireConnection(config, cb) {
|
|
52
|
+
const configConnection = config && config.connection;
|
|
53
|
+
|
|
54
|
+
const connection =
|
|
55
|
+
configConnection || (await this.client.acquireConnection());
|
|
56
|
+
try {
|
|
57
|
+
connection.__knexTxId = this.txid;
|
|
58
|
+
connection.isTransaction = true;
|
|
59
|
+
return await cb(connection);
|
|
60
|
+
} finally {
|
|
61
|
+
debugTx('%s: releasing connection', this.txid);
|
|
62
|
+
connection.isTransaction = false;
|
|
63
|
+
try {
|
|
64
|
+
await connection.commitAsync();
|
|
65
|
+
} catch (err) {
|
|
66
|
+
this._rejecter(err);
|
|
67
|
+
} finally {
|
|
68
|
+
if (!configConnection) {
|
|
69
|
+
await this.client.releaseConnection(connection);
|
|
70
|
+
} else {
|
|
71
|
+
debugTx('%s: not releasing external connection', this.txid);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
const Utils = require('../oracle/utils');
|
|
2
|
-
|
|
3
|
-
function BlobHelper(columnName, value) {
|
|
4
|
-
this.columnName = columnName;
|
|
5
|
-
this.value = value;
|
|
6
|
-
this.returning = false;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
BlobHelper.prototype.toString = function () {
|
|
10
|
-
return '[object BlobHelper:' + this.columnName + ']';
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
Utils.BlobHelper = BlobHelper;
|
|
14
|
-
module.exports = Utils;
|
|
1
|
+
const Utils = require('../oracle/utils');
|
|
2
|
+
|
|
3
|
+
function BlobHelper(columnName, value) {
|
|
4
|
+
this.columnName = columnName;
|
|
5
|
+
this.value = value;
|
|
6
|
+
this.returning = false;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
BlobHelper.prototype.toString = function () {
|
|
10
|
+
return '[object BlobHelper:' + this.columnName + ']';
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
Utils.BlobHelper = BlobHelper;
|
|
14
|
+
module.exports = Utils;
|