knex 2.5.0 → 2.5.1

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.
Files changed (167) hide show
  1. package/CHANGELOG.md +64 -58
  2. package/CONTRIBUTING.md +194 -194
  3. package/README.md +149 -147
  4. package/UPGRADING.md +245 -233
  5. package/bin/cli.js +475 -473
  6. package/bin/utils/cli-config-utils.js +212 -210
  7. package/bin/utils/constants.js +7 -7
  8. package/bin/utils/migrationsLister.js +37 -37
  9. package/knex.js +23 -23
  10. package/knex.mjs +11 -11
  11. package/lib/builder-interface-augmenter.js +120 -120
  12. package/lib/client.js +495 -495
  13. package/lib/constants.js +61 -61
  14. package/lib/dialects/better-sqlite3/index.js +77 -77
  15. package/lib/dialects/cockroachdb/crdb-columncompiler.js +14 -14
  16. package/lib/dialects/cockroachdb/crdb-querybuilder.js +11 -11
  17. package/lib/dialects/cockroachdb/crdb-querycompiler.js +122 -122
  18. package/lib/dialects/cockroachdb/crdb-tablecompiler.js +37 -37
  19. package/lib/dialects/cockroachdb/crdb-viewcompiler.js +15 -15
  20. package/lib/dialects/cockroachdb/index.js +86 -86
  21. package/lib/dialects/index.js +20 -20
  22. package/lib/dialects/mssql/index.js +500 -500
  23. package/lib/dialects/mssql/mssql-formatter.js +34 -34
  24. package/lib/dialects/mssql/query/mssql-querycompiler.js +601 -601
  25. package/lib/dialects/mssql/schema/mssql-columncompiler.js +185 -185
  26. package/lib/dialects/mssql/schema/mssql-compiler.js +91 -91
  27. package/lib/dialects/mssql/schema/mssql-tablecompiler.js +378 -378
  28. package/lib/dialects/mssql/schema/mssql-viewcompiler.js +55 -55
  29. package/lib/dialects/mssql/transaction.js +176 -176
  30. package/lib/dialects/mysql/index.js +201 -201
  31. package/lib/dialects/mysql/query/mysql-querycompiler.js +274 -274
  32. package/lib/dialects/mysql/schema/mysql-columncompiler.js +193 -193
  33. package/lib/dialects/mysql/schema/mysql-compiler.js +60 -60
  34. package/lib/dialects/mysql/schema/mysql-tablecompiler.js +381 -381
  35. package/lib/dialects/mysql/schema/mysql-viewbuilder.js +21 -21
  36. package/lib/dialects/mysql/schema/mysql-viewcompiler.js +15 -15
  37. package/lib/dialects/mysql/transaction.js +46 -46
  38. package/lib/dialects/mysql2/index.js +53 -53
  39. package/lib/dialects/mysql2/transaction.js +44 -44
  40. package/lib/dialects/oracle/DEAD_CODE.md +5 -5
  41. package/lib/dialects/oracle/index.js +92 -92
  42. package/lib/dialects/oracle/query/oracle-querycompiler.js +343 -343
  43. package/lib/dialects/oracle/schema/internal/incrementUtils.js +20 -20
  44. package/lib/dialects/oracle/schema/internal/trigger.js +135 -135
  45. package/lib/dialects/oracle/schema/oracle-columnbuilder.js +17 -17
  46. package/lib/dialects/oracle/schema/oracle-columncompiler.js +126 -126
  47. package/lib/dialects/oracle/schema/oracle-compiler.js +122 -122
  48. package/lib/dialects/oracle/schema/oracle-tablecompiler.js +190 -190
  49. package/lib/dialects/oracle/utils.js +87 -87
  50. package/lib/dialects/oracledb/index.js +327 -327
  51. package/lib/dialects/oracledb/query/oracledb-querycompiler.js +481 -481
  52. package/lib/dialects/oracledb/schema/oracledb-columncompiler.js +61 -61
  53. package/lib/dialects/oracledb/schema/oracledb-tablecompiler.js +19 -19
  54. package/lib/dialects/oracledb/schema/oracledb-viewbuilder.js +13 -13
  55. package/lib/dialects/oracledb/schema/oracledb-viewcompiler.js +19 -19
  56. package/lib/dialects/oracledb/transaction.js +98 -98
  57. package/lib/dialects/oracledb/utils.js +208 -208
  58. package/lib/dialects/pgnative/index.js +60 -60
  59. package/lib/dialects/postgres/execution/pg-transaction.js +19 -19
  60. package/lib/dialects/postgres/index.js +358 -358
  61. package/lib/dialects/postgres/query/pg-querybuilder.js +43 -43
  62. package/lib/dialects/postgres/query/pg-querycompiler.js +400 -400
  63. package/lib/dialects/postgres/schema/pg-columncompiler.js +156 -156
  64. package/lib/dialects/postgres/schema/pg-compiler.js +138 -138
  65. package/lib/dialects/postgres/schema/pg-tablecompiler.js +304 -304
  66. package/lib/dialects/postgres/schema/pg-viewbuilder.js +21 -21
  67. package/lib/dialects/postgres/schema/pg-viewcompiler.js +35 -35
  68. package/lib/dialects/redshift/index.js +86 -86
  69. package/lib/dialects/redshift/query/redshift-querycompiler.js +163 -163
  70. package/lib/dialects/redshift/schema/redshift-columnbuilder.js +22 -22
  71. package/lib/dialects/redshift/schema/redshift-columncompiler.js +67 -67
  72. package/lib/dialects/redshift/schema/redshift-compiler.js +14 -14
  73. package/lib/dialects/redshift/schema/redshift-tablecompiler.js +122 -122
  74. package/lib/dialects/redshift/schema/redshift-viewcompiler.js +11 -11
  75. package/lib/dialects/redshift/transaction.js +32 -32
  76. package/lib/dialects/sqlite3/execution/sqlite-transaction.js +25 -25
  77. package/lib/dialects/sqlite3/index.js +250 -250
  78. package/lib/dialects/sqlite3/query/sqlite-querybuilder.js +33 -33
  79. package/lib/dialects/sqlite3/query/sqlite-querycompiler.js +334 -334
  80. package/lib/dialects/sqlite3/schema/ddl.js +400 -400
  81. package/lib/dialects/sqlite3/schema/internal/compiler.js +327 -327
  82. package/lib/dialects/sqlite3/schema/internal/parser-combinator.js +161 -161
  83. package/lib/dialects/sqlite3/schema/internal/parser.js +638 -638
  84. package/lib/dialects/sqlite3/schema/internal/sqlite-ddl-operations.js +41 -41
  85. package/lib/dialects/sqlite3/schema/internal/tokenizer.js +38 -38
  86. package/lib/dialects/sqlite3/schema/internal/utils.js +12 -12
  87. package/lib/dialects/sqlite3/schema/sqlite-columncompiler.js +50 -50
  88. package/lib/dialects/sqlite3/schema/sqlite-compiler.js +80 -80
  89. package/lib/dialects/sqlite3/schema/sqlite-tablecompiler.js +347 -347
  90. package/lib/dialects/sqlite3/schema/sqlite-viewcompiler.js +40 -40
  91. package/lib/execution/batch-insert.js +51 -51
  92. package/lib/execution/internal/delay.js +6 -6
  93. package/lib/execution/internal/ensure-connection-callback.js +41 -41
  94. package/lib/execution/internal/query-executioner.js +62 -62
  95. package/lib/execution/runner.js +325 -325
  96. package/lib/execution/transaction.js +409 -409
  97. package/lib/formatter/formatterUtils.js +42 -42
  98. package/lib/formatter/rawFormatter.js +84 -84
  99. package/lib/formatter/wrappingFormatter.js +250 -250
  100. package/lib/formatter.js +25 -25
  101. package/lib/index.js +3 -3
  102. package/lib/knex-builder/FunctionHelper.js +80 -80
  103. package/lib/knex-builder/Knex.js +59 -59
  104. package/lib/knex-builder/internal/config-resolver.js +57 -57
  105. package/lib/knex-builder/internal/parse-connection.js +87 -87
  106. package/lib/knex-builder/make-knex.js +345 -345
  107. package/lib/logger.js +76 -76
  108. package/lib/migrations/common/MigrationsLoader.js +36 -36
  109. package/lib/migrations/migrate/MigrationGenerator.js +84 -84
  110. package/lib/migrations/migrate/Migrator.js +598 -598
  111. package/lib/migrations/migrate/migrate-stub.js +17 -17
  112. package/lib/migrations/migrate/migration-list-resolver.js +33 -33
  113. package/lib/migrations/migrate/migrator-configuration-merger.js +58 -58
  114. package/lib/migrations/migrate/sources/fs-migrations.js +74 -74
  115. package/lib/migrations/migrate/table-creator.js +77 -77
  116. package/lib/migrations/migrate/table-resolver.js +27 -27
  117. package/lib/migrations/seed/Seeder.js +137 -137
  118. package/lib/migrations/seed/seed-stub.js +13 -13
  119. package/lib/migrations/seed/seeder-configuration-merger.js +60 -60
  120. package/lib/migrations/seed/sources/fs-seeds.js +65 -65
  121. package/lib/migrations/util/fs.js +86 -86
  122. package/lib/migrations/util/import-file.js +12 -12
  123. package/lib/migrations/util/is-module-type.js +9 -9
  124. package/lib/migrations/util/template.js +52 -52
  125. package/lib/migrations/util/timestamp.js +14 -14
  126. package/lib/query/analytic.js +52 -52
  127. package/lib/query/constants.js +15 -15
  128. package/lib/query/joinclause.js +270 -270
  129. package/lib/query/method-constants.js +136 -136
  130. package/lib/query/querybuilder.js +1793 -1793
  131. package/lib/query/querycompiler.js +1591 -1591
  132. package/lib/raw.js +139 -139
  133. package/lib/ref.js +39 -39
  134. package/lib/schema/builder.js +115 -115
  135. package/lib/schema/columnbuilder.js +146 -146
  136. package/lib/schema/columncompiler.js +307 -307
  137. package/lib/schema/compiler.js +187 -187
  138. package/lib/schema/internal/helpers.js +55 -55
  139. package/lib/schema/tablebuilder.js +376 -376
  140. package/lib/schema/tablecompiler.js +433 -433
  141. package/lib/schema/viewbuilder.js +92 -92
  142. package/lib/schema/viewcompiler.js +138 -138
  143. package/lib/util/finally-mixin.js +13 -13
  144. package/lib/util/helpers.js +95 -95
  145. package/lib/util/is.js +32 -32
  146. package/lib/util/nanoid.js +40 -40
  147. package/lib/util/noop.js +1 -1
  148. package/lib/util/save-async-stack.js +14 -14
  149. package/lib/util/security.js +26 -26
  150. package/lib/util/string.js +190 -190
  151. package/lib/util/timeout.js +29 -29
  152. package/package.json +11 -10
  153. package/scripts/build.js +125 -125
  154. package/scripts/clean.js +31 -31
  155. package/scripts/docker-compose.yml +152 -152
  156. package/scripts/next-release-howto.md +24 -24
  157. package/scripts/release.sh +2 -0
  158. package/scripts/runkit-example.js +35 -34
  159. package/scripts/stress-test/docker-compose.yml +57 -57
  160. package/scripts/stress-test/knex-stress-test.js +212 -208
  161. package/scripts/stress-test/mysql2-random-hanging-every-now-and-then.js +149 -145
  162. package/scripts/stress-test/mysql2-sudden-exit-without-error.js +101 -100
  163. package/scripts/stress-test/reconnect-test-mysql-based-drivers.js +188 -184
  164. package/scripts/update_gitignore_for_tsc_output.js +90 -90
  165. package/types/index.d.ts +3274 -3273
  166. package/types/result.d.ts +27 -27
  167. package/types/tables.d.ts +4 -4
@@ -1,152 +1,152 @@
1
- version: '3'
2
-
3
- services:
4
- mssql:
5
- image: mcr.microsoft.com/mssql/server:2019-latest
6
- ports:
7
- - '21433:1433'
8
- environment:
9
- - ACCEPT_EULA=Y
10
- - SA_PASSWORD=S0meVeryHardPassword
11
- healthcheck:
12
- test: /opt/mssql-tools/bin/sqlcmd -S mssql -U sa -P 'S0meVeryHardPassword' -Q 'select 1'
13
- waitmssql:
14
- image: mcr.microsoft.com/mssql/server:2017-latest
15
- links:
16
- - mssql
17
- depends_on:
18
- - mssql
19
- entrypoint:
20
- - bash
21
- - -c
22
- # https://docs.microsoft.com/en-us/sql/relational-databases/logs/control-transaction-durability?view=sql-server-ver15#bkmk_DbControl
23
- - 'until /opt/mssql-tools/bin/sqlcmd -S mssql -U sa -P S0meVeryHardPassword -d master -Q "CREATE DATABASE knex_test; ALTER DATABASE knex_test SET ALLOW_SNAPSHOT_ISOLATION ON; ALTER DATABASE knex_test SET DELAYED_DURABILITY = FORCED"; do sleep 5; done'
24
-
25
- mysql:
26
- image: mysql
27
- # https://dev.mysql.com/doc/refman/8.0/en/mysql-acid.html
28
- # https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method
29
- # nosync only for unix, edit for local start on other systems
30
- command: --default-authentication-plugin=mysql_native_password --sync_binlog=0 --innodb_doublewrite=OFF --innodb-flush-log-at-trx-commit=0 --innodb-flush-method=nosync
31
- ports:
32
- - '23306:3306'
33
- environment:
34
- - MYSQL_ROOT_PASSWORD=testrootpassword
35
- - MYSQL_DATABASE=knex_test
36
- - MYSQL_USER=testuser
37
- - MYSQL_PASSWORD=testpassword
38
- healthcheck:
39
- test:
40
- [
41
- 'CMD',
42
- '/usr/bin/mysql',
43
- '-hlocalhost',
44
- '-utestuser',
45
- '-ptestpassword',
46
- '-e',
47
- 'SELECT 1',
48
- ]
49
- interval: 30s
50
- timeout: 5s
51
- retries: 3
52
- restart: always
53
- volumes:
54
- - mysql_data:/var/lib/mysql
55
- waitmysql:
56
- image: mysql
57
- links:
58
- - mysql
59
- depends_on:
60
- - mysql
61
- entrypoint:
62
- - bash
63
- - -c
64
- - 'until /usr/bin/mysql -hmysql -utestuser -ptestpassword -e "SELECT 1"; do sleep 5; done'
65
-
66
- postgres:
67
- image: postgres:13-alpine
68
- # see https://www.postgresql.org/docs/current/non-durability.html
69
- command: '-c full_page_writes=off -c fsync=off -c synchronous_commit=off'
70
- ports:
71
- - '25432:5432'
72
- environment:
73
- - POSTGRES_USER=testuser
74
- - POSTGRES_PASSWORD=knextest
75
- - POSTGRES_DB=knex_test
76
- waitpostgres:
77
- image: postgres:13-alpine
78
- links:
79
- - postgres
80
- depends_on:
81
- - postgres
82
- entrypoint:
83
- - bash
84
- - -c
85
- - 'until /usr/local/bin/psql postgres://testuser:knextest@postgres/knex_test -c "SELECT 1"; do sleep 5; done'
86
-
87
- cockroachdb:
88
- image: cockroachdb/cockroach:latest-v21.2
89
- container_name: crdb
90
- hostname: crdb
91
- command: start-single-node --cluster-name=example-single-node --insecure
92
- ports:
93
- - "26257:26257"
94
- - "8080:8080"
95
-
96
- waitcockroachdb:
97
- container_name: crdb-init
98
- hostname: crdb-init
99
- image: timveil/cockroachdb-remote-client:latest
100
- environment:
101
- - COCKROACH_HOST=crdb:26257
102
- - COCKROACH_INSECURE=true
103
- - DATABASE_NAME=test
104
- depends_on:
105
- - cockroachdb
106
-
107
- pgnative:
108
- image: postgres:13-alpine
109
- # see https://www.postgresql.org/docs/current/non-durability.html
110
- command: '-c full_page_writes=off -c fsync=off -c synchronous_commit=off'
111
- ports:
112
- - '25433:5432'
113
- environment:
114
- - POSTGRES_USER=testuser
115
- - POSTGRES_PASSWORD=knextest
116
- - POSTGRES_DB=knex_test
117
- waitpgnative:
118
- image: postgres:13-alpine
119
- links:
120
- - pgnative
121
- depends_on:
122
- - pgnative
123
- entrypoint:
124
- - bash
125
- - -c
126
- - 'until /usr/local/bin/psql postgres://testuser:knextest@pgnative/knex_test -c "SELECT 1"; do sleep 5; done'
127
-
128
- oracledb:
129
- image: quillbuilduser/oracle-18-xe
130
- container_name: oracledb_container
131
- ports:
132
- - '21521:1521'
133
- environment:
134
- - ORACLE_ALLOW_REMOTE=true
135
- waitoracledb:
136
- image: quillbuilduser/oracle-18-xe
137
- links:
138
- - oracledb
139
- depends_on:
140
- - oracledb
141
- environment:
142
- - ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
143
- entrypoint:
144
- - bash
145
- - -c
146
- - 'until /opt/oracle/product/18c/dbhomeXE/bin/sqlplus -s sys/Oracle18@oracledb/XE as sysdba <<< "SELECT 13376411 FROM DUAL; exit;" | grep "13376411"; do echo "Could not connect to oracle... sleep for a while"; sleep 5; done'
147
-
148
- volumes:
149
- mysql_data:
150
- driver_opts:
151
- type: tmpfs
152
- device: tmpfs
1
+ version: '3'
2
+
3
+ services:
4
+ mssql:
5
+ image: mcr.microsoft.com/mssql/server:2019-latest
6
+ ports:
7
+ - '21433:1433'
8
+ environment:
9
+ - ACCEPT_EULA=Y
10
+ - SA_PASSWORD=S0meVeryHardPassword
11
+ healthcheck:
12
+ test: /opt/mssql-tools/bin/sqlcmd -S mssql -U sa -P 'S0meVeryHardPassword' -Q 'select 1'
13
+ waitmssql:
14
+ image: mcr.microsoft.com/mssql/server:2017-latest
15
+ links:
16
+ - mssql
17
+ depends_on:
18
+ - mssql
19
+ entrypoint:
20
+ - bash
21
+ - -c
22
+ # https://docs.microsoft.com/en-us/sql/relational-databases/logs/control-transaction-durability?view=sql-server-ver15#bkmk_DbControl
23
+ - 'until /opt/mssql-tools/bin/sqlcmd -S mssql -U sa -P S0meVeryHardPassword -d master -Q "CREATE DATABASE knex_test; ALTER DATABASE knex_test SET ALLOW_SNAPSHOT_ISOLATION ON; ALTER DATABASE knex_test SET DELAYED_DURABILITY = FORCED"; do sleep 5; done'
24
+
25
+ mysql:
26
+ image: mysql
27
+ # https://dev.mysql.com/doc/refman/8.0/en/mysql-acid.html
28
+ # https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method
29
+ # nosync only for unix, edit for local start on other systems
30
+ command: --default-authentication-plugin=mysql_native_password --sync_binlog=0 --innodb_doublewrite=OFF --innodb-flush-log-at-trx-commit=0 --innodb-flush-method=nosync
31
+ ports:
32
+ - '23306:3306'
33
+ environment:
34
+ - MYSQL_ROOT_PASSWORD=testrootpassword
35
+ - MYSQL_DATABASE=knex_test
36
+ - MYSQL_USER=testuser
37
+ - MYSQL_PASSWORD=testpassword
38
+ healthcheck:
39
+ test:
40
+ [
41
+ 'CMD',
42
+ '/usr/bin/mysql',
43
+ '-hlocalhost',
44
+ '-utestuser',
45
+ '-ptestpassword',
46
+ '-e',
47
+ 'SELECT 1',
48
+ ]
49
+ interval: 30s
50
+ timeout: 5s
51
+ retries: 3
52
+ restart: always
53
+ volumes:
54
+ - mysql_data:/var/lib/mysql
55
+ waitmysql:
56
+ image: mysql
57
+ links:
58
+ - mysql
59
+ depends_on:
60
+ - mysql
61
+ entrypoint:
62
+ - bash
63
+ - -c
64
+ - 'until /usr/bin/mysql -hmysql -utestuser -ptestpassword -e "SELECT 1"; do sleep 5; done'
65
+
66
+ postgres:
67
+ image: postgres:13-alpine
68
+ # see https://www.postgresql.org/docs/current/non-durability.html
69
+ command: '-c full_page_writes=off -c fsync=off -c synchronous_commit=off'
70
+ ports:
71
+ - '25432:5432'
72
+ environment:
73
+ - POSTGRES_USER=testuser
74
+ - POSTGRES_PASSWORD=knextest
75
+ - POSTGRES_DB=knex_test
76
+ waitpostgres:
77
+ image: postgres:13-alpine
78
+ links:
79
+ - postgres
80
+ depends_on:
81
+ - postgres
82
+ entrypoint:
83
+ - bash
84
+ - -c
85
+ - 'until /usr/local/bin/psql postgres://testuser:knextest@postgres/knex_test -c "SELECT 1"; do sleep 5; done'
86
+
87
+ cockroachdb:
88
+ image: cockroachdb/cockroach:latest-v21.2
89
+ container_name: crdb
90
+ hostname: crdb
91
+ command: start-single-node --cluster-name=example-single-node --insecure
92
+ ports:
93
+ - '26257:26257'
94
+ - '8080:8080'
95
+
96
+ waitcockroachdb:
97
+ container_name: crdb-init
98
+ hostname: crdb-init
99
+ image: timveil/cockroachdb-remote-client:latest
100
+ environment:
101
+ - COCKROACH_HOST=crdb:26257
102
+ - COCKROACH_INSECURE=true
103
+ - DATABASE_NAME=test
104
+ depends_on:
105
+ - cockroachdb
106
+
107
+ pgnative:
108
+ image: postgres:13-alpine
109
+ # see https://www.postgresql.org/docs/current/non-durability.html
110
+ command: '-c full_page_writes=off -c fsync=off -c synchronous_commit=off'
111
+ ports:
112
+ - '25433:5432'
113
+ environment:
114
+ - POSTGRES_USER=testuser
115
+ - POSTGRES_PASSWORD=knextest
116
+ - POSTGRES_DB=knex_test
117
+ waitpgnative:
118
+ image: postgres:13-alpine
119
+ links:
120
+ - pgnative
121
+ depends_on:
122
+ - pgnative
123
+ entrypoint:
124
+ - bash
125
+ - -c
126
+ - 'until /usr/local/bin/psql postgres://testuser:knextest@pgnative/knex_test -c "SELECT 1"; do sleep 5; done'
127
+
128
+ oracledb:
129
+ image: quillbuilduser/oracle-18-xe
130
+ container_name: oracledb_container
131
+ ports:
132
+ - '21521:1521'
133
+ environment:
134
+ - ORACLE_ALLOW_REMOTE=true
135
+ waitoracledb:
136
+ image: quillbuilduser/oracle-18-xe
137
+ links:
138
+ - oracledb
139
+ depends_on:
140
+ - oracledb
141
+ environment:
142
+ - ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
143
+ entrypoint:
144
+ - bash
145
+ - -c
146
+ - 'until /opt/oracle/product/18c/dbhomeXE/bin/sqlplus -s sys/Oracle18@oracledb/XE as sysdba <<< "SELECT 13376411 FROM DUAL; exit;" | grep "13376411"; do echo "Could not connect to oracle... sleep for a while"; sleep 5; done'
147
+
148
+ volumes:
149
+ mysql_data:
150
+ driver_opts:
151
+ type: tmpfs
152
+ device: tmpfs
@@ -1,24 +1,24 @@
1
- # Checklist for crating knex @next releases
2
-
3
- 1. Go through all commits since the last release and add them to CHANGELOG.md under unreleased changes section.
4
- 2. Commit changes to CHANGELOG
5
- 3. Check that master compiles and tests are running fine (check also that CI tests are passing)
6
-
7
- ```sh
8
- npm run build
9
-
10
- # run bunch of tests, but skipping coverage which doesn't really work locally at least
11
- npm plaintest
12
- npm bin_test
13
- npm oracledb:test
14
- npm mssql:init
15
- npm mssql:test
16
- npm mssql:destroy
17
- ```
18
-
19
- 4. Update package.json version to be e.g. 0.16.0-next1 or 0.16.0-next2 and commit yo master
20
- 5. Publish it under @next tag
21
-
22
- ```sh
23
- npm publish --tag next
24
- ```
1
+ # Checklist for crating knex @next releases
2
+
3
+ 1. Go through all commits since the last release and add them to CHANGELOG.md under unreleased changes section.
4
+ 2. Commit changes to CHANGELOG
5
+ 3. Check that master compiles and tests are running fine (check also that CI tests are passing)
6
+
7
+ ```sh
8
+ npm run build
9
+
10
+ # run bunch of tests, but skipping coverage which doesn't really work locally at least
11
+ npm plaintest
12
+ npm bin_test
13
+ npm oracledb:test
14
+ npm mssql:init
15
+ npm mssql:test
16
+ npm mssql:destroy
17
+ ```
18
+
19
+ 4. Update package.json version to be e.g. 0.16.0-next1 or 0.16.0-next2 and commit yo master
20
+ 5. Publish it under @next tag
21
+
22
+ ```sh
23
+ npm publish --tag next
24
+ ```
@@ -22,6 +22,8 @@ next_ref="v$next_version"
22
22
  git add -u
23
23
 
24
24
  npm run build
25
+ npm run format:check
26
+ npm run lint:everything
25
27
  npm test
26
28
 
27
29
  update_version 'package.json' $next_version
@@ -1,34 +1,35 @@
1
- require('sqlite3');
2
- const Knex = require('knex');
3
-
4
- const knexSqlite = Knex({
5
- client: 'sqlite',
6
- connection: ':memory:',
7
- });
8
-
9
- const knexMysql = Knex({
10
- client: 'mysql2',
11
- });
12
-
13
- const knexPg = Knex({
14
- client: 'pg',
15
- });
16
-
17
- (async function run() {
18
- await knexSqlite.schema.createTable('test', (t) => {
19
- t.increments('id').primary();
20
- t.string('data');
21
- });
22
-
23
- await knexSqlite('test').insert([{ data: 'foo' }, { data: 'bar' }]);
24
-
25
- console.log('test table data:', await knexSqlite('test'));
26
-
27
- console.log(
28
- knexPg({ f: 'foo', b: 'bar' })
29
- .select('foo.*')
30
- .where('f.name', knexPg.raw('??', ['b.name']))
31
- .whereIn('something', knexPg('bar').select('id'))
32
- .toSQL().sql
33
- );
34
- })();
1
+ require('sqlite3');
2
+ const Knex = require('knex');
3
+
4
+ const knexSqlite = Knex({
5
+ client: 'sqlite',
6
+ connection: ':memory:',
7
+ });
8
+
9
+ // eslint-disable-next-line no-unused-vars
10
+ const knexMysql = Knex({
11
+ client: 'mysql2',
12
+ });
13
+
14
+ const knexPg = Knex({
15
+ client: 'pg',
16
+ });
17
+
18
+ (async function run() {
19
+ await knexSqlite.schema.createTable('test', (t) => {
20
+ t.increments('id').primary();
21
+ t.string('data');
22
+ });
23
+
24
+ await knexSqlite('test').insert([{ data: 'foo' }, { data: 'bar' }]);
25
+
26
+ console.log('test table data:', await knexSqlite('test'));
27
+
28
+ console.log(
29
+ knexPg({ f: 'foo', b: 'bar' })
30
+ .select('foo.*')
31
+ .where('f.name', knexPg.raw('??', ['b.name']))
32
+ .whereIn('something', knexPg('bar').select('id'))
33
+ .toSQL().sql
34
+ );
35
+ })();
@@ -1,57 +1,57 @@
1
- version: '3'
2
-
3
- services:
4
- toxiproxy:
5
- image: shopify/toxiproxy
6
- ports:
7
- - "8474:8474"
8
- - "23306:23306"
9
- - "25432:25432"
10
- - "25433:25433"
11
- - "21521:21521"
12
- - "21433:21433"
13
- links:
14
- - "mysql"
15
- - "postgresql"
16
- - "pgnative"
17
- - "oracledb"
18
- - "mssql"
19
-
20
- mysql:
21
- image: mysql:5.7
22
- ports:
23
- - "33306:3306"
24
- environment:
25
- - TZ=UTC
26
- - MYSQL_ROOT_PASSWORD=mysqlrootpassword
27
-
28
- postgresql:
29
- image: mdillon/postgis
30
- ports:
31
- - "35432:5432"
32
- environment:
33
- - POSTGRES_PASSWORD=postgresrootpassword
34
- - POSTGRES_USER=postgres
35
-
36
- pgnative:
37
- image: mdillon/postgis
38
- ports:
39
- - "35433:5432"
40
- environment:
41
- - POSTGRES_PASSWORD=postgresrootpassword
42
- - POSTGRES_USER=postgres
43
-
44
- oracledb:
45
- image: quillbuilduser/oracle-18-xe
46
- ports:
47
- - "31521:1521"
48
- environment:
49
- - ORACLE_ALLOW_REMOTE=true
50
-
51
- mssql:
52
- image: microsoft/mssql-server-linux:2017-latest
53
- ports:
54
- - "31433:1433"
55
- environment:
56
- - ACCEPT_EULA=Y
57
- - SA_PASSWORD=S0meVeryHardPassword
1
+ version: '3'
2
+
3
+ services:
4
+ toxiproxy:
5
+ image: shopify/toxiproxy
6
+ ports:
7
+ - '8474:8474'
8
+ - '23306:23306'
9
+ - '25432:25432'
10
+ - '25433:25433'
11
+ - '21521:21521'
12
+ - '21433:21433'
13
+ links:
14
+ - 'mysql'
15
+ - 'postgresql'
16
+ - 'pgnative'
17
+ - 'oracledb'
18
+ - 'mssql'
19
+
20
+ mysql:
21
+ image: mysql:5.7
22
+ ports:
23
+ - '33306:3306'
24
+ environment:
25
+ - TZ=UTC
26
+ - MYSQL_ROOT_PASSWORD=mysqlrootpassword
27
+
28
+ postgresql:
29
+ image: mdillon/postgis
30
+ ports:
31
+ - '35432:5432'
32
+ environment:
33
+ - POSTGRES_PASSWORD=postgresrootpassword
34
+ - POSTGRES_USER=postgres
35
+
36
+ pgnative:
37
+ image: mdillon/postgis
38
+ ports:
39
+ - '35433:5432'
40
+ environment:
41
+ - POSTGRES_PASSWORD=postgresrootpassword
42
+ - POSTGRES_USER=postgres
43
+
44
+ oracledb:
45
+ image: quillbuilduser/oracle-18-xe
46
+ ports:
47
+ - '31521:1521'
48
+ environment:
49
+ - ORACLE_ALLOW_REMOTE=true
50
+
51
+ mssql:
52
+ image: microsoft/mssql-server-linux:2017-latest
53
+ ports:
54
+ - '31433:1433'
55
+ environment:
56
+ - ACCEPT_EULA=Y
57
+ - SA_PASSWORD=S0meVeryHardPassword