knex 2.5.0 → 3.0.0

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 (190) hide show
  1. package/CHANGELOG.md +78 -59
  2. package/CONTRIBUTING.md +194 -194
  3. package/LICENSE +22 -22
  4. package/README.md +149 -147
  5. package/UPGRADING.md +245 -233
  6. package/bin/cli.js +475 -473
  7. package/bin/utils/cli-config-utils.js +212 -210
  8. package/bin/utils/constants.js +7 -7
  9. package/bin/utils/migrationsLister.js +37 -37
  10. package/knex.js +23 -23
  11. package/knex.mjs +11 -11
  12. package/lib/builder-interface-augmenter.js +120 -120
  13. package/lib/client.js +495 -495
  14. package/lib/constants.js +61 -61
  15. package/lib/dialects/better-sqlite3/index.js +77 -77
  16. package/lib/dialects/cockroachdb/crdb-columncompiler.js +14 -14
  17. package/lib/dialects/cockroachdb/crdb-querybuilder.js +11 -11
  18. package/lib/dialects/cockroachdb/crdb-querycompiler.js +122 -122
  19. package/lib/dialects/cockroachdb/crdb-tablecompiler.js +37 -37
  20. package/lib/dialects/cockroachdb/crdb-viewcompiler.js +15 -15
  21. package/lib/dialects/cockroachdb/index.js +86 -86
  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 +599 -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/stub/cjs.stub +15 -15
  116. package/lib/migrations/migrate/stub/coffee.stub +13 -13
  117. package/lib/migrations/migrate/stub/eg.stub +14 -14
  118. package/lib/migrations/migrate/stub/js-schema.stub +22 -22
  119. package/lib/migrations/migrate/stub/js.stub +22 -22
  120. package/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
  121. package/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
  122. package/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
  123. package/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
  124. package/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
  125. package/lib/migrations/migrate/stub/ls.stub +14 -14
  126. package/lib/migrations/migrate/stub/mjs.stub +23 -23
  127. package/lib/migrations/migrate/stub/ts-schema.stub +21 -21
  128. package/lib/migrations/migrate/stub/ts.stub +21 -21
  129. package/lib/migrations/migrate/table-creator.js +77 -77
  130. package/lib/migrations/migrate/table-resolver.js +27 -27
  131. package/lib/migrations/seed/Seeder.js +137 -137
  132. package/lib/migrations/seed/seed-stub.js +13 -13
  133. package/lib/migrations/seed/seeder-configuration-merger.js +60 -60
  134. package/lib/migrations/seed/sources/fs-seeds.js +65 -65
  135. package/lib/migrations/seed/stub/coffee.stub +9 -9
  136. package/lib/migrations/seed/stub/eg.stub +11 -11
  137. package/lib/migrations/seed/stub/js.stub +13 -13
  138. package/lib/migrations/seed/stub/ls.stub +11 -11
  139. package/lib/migrations/seed/stub/mjs.stub +12 -12
  140. package/lib/migrations/seed/stub/ts.stub +13 -13
  141. package/lib/migrations/util/fs.js +86 -86
  142. package/lib/migrations/util/import-file.js +12 -12
  143. package/lib/migrations/util/is-module-type.js +9 -9
  144. package/lib/migrations/util/template.js +52 -52
  145. package/lib/migrations/util/timestamp.js +14 -14
  146. package/lib/query/analytic.js +52 -52
  147. package/lib/query/constants.js +15 -15
  148. package/lib/query/joinclause.js +270 -270
  149. package/lib/query/method-constants.js +136 -136
  150. package/lib/query/querybuilder.js +1793 -1793
  151. package/lib/query/querycompiler.js +1591 -1591
  152. package/lib/raw.js +139 -139
  153. package/lib/ref.js +39 -39
  154. package/lib/schema/builder.js +115 -115
  155. package/lib/schema/columnbuilder.js +146 -146
  156. package/lib/schema/columncompiler.js +307 -307
  157. package/lib/schema/compiler.js +187 -187
  158. package/lib/schema/internal/helpers.js +55 -55
  159. package/lib/schema/tablebuilder.js +376 -376
  160. package/lib/schema/tablecompiler.js +433 -433
  161. package/lib/schema/viewbuilder.js +92 -92
  162. package/lib/schema/viewcompiler.js +138 -138
  163. package/lib/util/finally-mixin.js +13 -13
  164. package/lib/util/helpers.js +95 -95
  165. package/lib/util/is.js +32 -32
  166. package/lib/util/nanoid.js +40 -40
  167. package/lib/util/noop.js +1 -1
  168. package/lib/util/save-async-stack.js +14 -14
  169. package/lib/util/security.js +26 -26
  170. package/lib/util/string.js +190 -190
  171. package/lib/util/timeout.js +29 -29
  172. package/package.json +13 -12
  173. package/scripts/build.js +125 -125
  174. package/scripts/clean.js +31 -31
  175. package/scripts/docker-compose.yml +152 -152
  176. package/scripts/next-release-howto.md +24 -24
  177. package/scripts/oracledb-install-driver-libs.sh +82 -82
  178. package/scripts/release.sh +36 -34
  179. package/scripts/runkit-example.js +35 -34
  180. package/scripts/stress-test/README.txt +18 -18
  181. package/scripts/stress-test/docker-compose.yml +57 -57
  182. package/scripts/stress-test/knex-stress-test.js +212 -208
  183. package/scripts/stress-test/mysql2-random-hanging-every-now-and-then.js +149 -145
  184. package/scripts/stress-test/mysql2-sudden-exit-without-error.js +101 -100
  185. package/scripts/stress-test/reconnect-test-mysql-based-drivers.js +188 -184
  186. package/scripts/update_gitignore_for_tsc_output.js +90 -90
  187. package/types/index.d.ts +3272 -3273
  188. package/types/result.d.ts +27 -27
  189. package/types/tables.d.ts +4 -4
  190. package/lib/dialects/index.js +0 -34
@@ -1,17 +1,17 @@
1
- // Stub Migrate:
2
- // Used for now in browser builds, where filesystem access isn't
3
- // available.
4
- const StubMigrate = (module.exports = function () {});
5
-
6
- const noSuchMethod = async function () {
7
- throw new Error('Migrations are not supported');
8
- };
9
-
10
- StubMigrate.prototype = {
11
- make: noSuchMethod,
12
- latest: noSuchMethod,
13
- rollback: noSuchMethod,
14
- currentVersion: noSuchMethod,
15
- up: noSuchMethod,
16
- down: noSuchMethod,
17
- };
1
+ // Stub Migrate:
2
+ // Used for now in browser builds, where filesystem access isn't
3
+ // available.
4
+ const StubMigrate = (module.exports = function () {});
5
+
6
+ const noSuchMethod = async function () {
7
+ throw new Error('Migrations are not supported');
8
+ };
9
+
10
+ StubMigrate.prototype = {
11
+ make: noSuchMethod,
12
+ latest: noSuchMethod,
13
+ rollback: noSuchMethod,
14
+ currentVersion: noSuchMethod,
15
+ up: noSuchMethod,
16
+ down: noSuchMethod,
17
+ };
@@ -1,33 +1,33 @@
1
- const { getTableName } = require('./table-resolver');
2
- const { ensureTable } = require('./table-creator');
3
-
4
- // Lists all available migration versions, as a sorted array.
5
- function listAll(migrationSource, loadExtensions) {
6
- return migrationSource.getMigrations(loadExtensions);
7
- }
8
-
9
- // Lists all migrations that have been completed for the current db, as an
10
- // array.
11
- async function listCompleted(tableName, schemaName, trxOrKnex) {
12
- await ensureTable(tableName, schemaName, trxOrKnex);
13
-
14
- return await trxOrKnex
15
- .from(getTableName(tableName, schemaName))
16
- .orderBy('id')
17
- .select('name');
18
- }
19
-
20
- // Gets the migration list from the migration directory specified in config, as well as
21
- // the list of completed migrations to check what should be run.
22
- function listAllAndCompleted(config, trxOrKnex) {
23
- return Promise.all([
24
- listAll(config.migrationSource, config.loadExtensions),
25
- listCompleted(config.tableName, config.schemaName, trxOrKnex),
26
- ]);
27
- }
28
-
29
- module.exports = {
30
- listAll,
31
- listAllAndCompleted,
32
- listCompleted,
33
- };
1
+ const { getTableName } = require('./table-resolver');
2
+ const { ensureTable } = require('./table-creator');
3
+
4
+ // Lists all available migration versions, as a sorted array.
5
+ function listAll(migrationSource, loadExtensions) {
6
+ return migrationSource.getMigrations(loadExtensions);
7
+ }
8
+
9
+ // Lists all migrations that have been completed for the current db, as an
10
+ // array.
11
+ async function listCompleted(tableName, schemaName, trxOrKnex) {
12
+ await ensureTable(tableName, schemaName, trxOrKnex);
13
+
14
+ return await trxOrKnex
15
+ .from(getTableName(tableName, schemaName))
16
+ .orderBy('id')
17
+ .select('name');
18
+ }
19
+
20
+ // Gets the migration list from the migration directory specified in config, as well as
21
+ // the list of completed migrations to check what should be run.
22
+ function listAllAndCompleted(config, trxOrKnex) {
23
+ return Promise.all([
24
+ listAll(config.migrationSource, config.loadExtensions),
25
+ listCompleted(config.tableName, config.schemaName, trxOrKnex),
26
+ ]);
27
+ }
28
+
29
+ module.exports = {
30
+ listAll,
31
+ listAllAndCompleted,
32
+ listCompleted,
33
+ };
@@ -1,58 +1,58 @@
1
- const { FsMigrations } = require('./sources/fs-migrations');
2
- const Logger = require('../../logger');
3
- const { DEFAULT_LOAD_EXTENSIONS } = require('../common/MigrationsLoader');
4
- const defaultLogger = new Logger();
5
-
6
- const CONFIG_DEFAULT = Object.freeze({
7
- extension: 'js',
8
- loadExtensions: DEFAULT_LOAD_EXTENSIONS,
9
- tableName: 'knex_migrations',
10
- schemaName: null,
11
- directory: './migrations',
12
- disableTransactions: false,
13
- disableMigrationsListValidation: false,
14
- sortDirsSeparately: false,
15
- });
16
-
17
- function getMergedConfig(config, currentConfig, logger = defaultLogger) {
18
- // config is the user specified config, mergedConfig has defaults and current config
19
- // applied to it.
20
- const mergedConfig = Object.assign(
21
- {},
22
- CONFIG_DEFAULT,
23
- currentConfig || {},
24
- config
25
- );
26
-
27
- if (
28
- config &&
29
- // If user specifies any FS related config,
30
- // clear specified migrationSource to avoid ambiguity
31
- (config.directory ||
32
- config.sortDirsSeparately !== undefined ||
33
- config.loadExtensions)
34
- ) {
35
- if (config.migrationSource) {
36
- logger.warn(
37
- 'FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations'
38
- );
39
- }
40
- mergedConfig.migrationSource = null;
41
- }
42
-
43
- // If the user has not specified any configs, we need to
44
- // default to fs migrations to maintain compatibility
45
- if (!mergedConfig.migrationSource) {
46
- mergedConfig.migrationSource = new FsMigrations(
47
- mergedConfig.directory,
48
- mergedConfig.sortDirsSeparately,
49
- mergedConfig.loadExtensions
50
- );
51
- }
52
-
53
- return mergedConfig;
54
- }
55
-
56
- module.exports = {
57
- getMergedConfig,
58
- };
1
+ const { FsMigrations } = require('./sources/fs-migrations');
2
+ const Logger = require('../../logger');
3
+ const { DEFAULT_LOAD_EXTENSIONS } = require('../common/MigrationsLoader');
4
+ const defaultLogger = new Logger();
5
+
6
+ const CONFIG_DEFAULT = Object.freeze({
7
+ extension: 'js',
8
+ loadExtensions: DEFAULT_LOAD_EXTENSIONS,
9
+ tableName: 'knex_migrations',
10
+ schemaName: null,
11
+ directory: './migrations',
12
+ disableTransactions: false,
13
+ disableMigrationsListValidation: false,
14
+ sortDirsSeparately: false,
15
+ });
16
+
17
+ function getMergedConfig(config, currentConfig, logger = defaultLogger) {
18
+ // config is the user specified config, mergedConfig has defaults and current config
19
+ // applied to it.
20
+ const mergedConfig = Object.assign(
21
+ {},
22
+ CONFIG_DEFAULT,
23
+ currentConfig || {},
24
+ config
25
+ );
26
+
27
+ if (
28
+ config &&
29
+ // If user specifies any FS related config,
30
+ // clear specified migrationSource to avoid ambiguity
31
+ (config.directory ||
32
+ config.sortDirsSeparately !== undefined ||
33
+ config.loadExtensions)
34
+ ) {
35
+ if (config.migrationSource) {
36
+ logger.warn(
37
+ 'FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations'
38
+ );
39
+ }
40
+ mergedConfig.migrationSource = null;
41
+ }
42
+
43
+ // If the user has not specified any configs, we need to
44
+ // default to fs migrations to maintain compatibility
45
+ if (!mergedConfig.migrationSource) {
46
+ mergedConfig.migrationSource = new FsMigrations(
47
+ mergedConfig.directory,
48
+ mergedConfig.sortDirsSeparately,
49
+ mergedConfig.loadExtensions
50
+ );
51
+ }
52
+
53
+ return mergedConfig;
54
+ }
55
+
56
+ module.exports = {
57
+ getMergedConfig,
58
+ };
@@ -1,74 +1,74 @@
1
- const path = require('path');
2
- const sortBy = require('lodash/sortBy');
3
-
4
- const { readdir } = require('../../util/fs');
5
- const { AbstractMigrationsLoader } = require('../../common/MigrationsLoader');
6
-
7
- class FsMigrations extends AbstractMigrationsLoader {
8
- /**
9
- * Gets the migration names
10
- * @returns Promise<string[]>
11
- */
12
- getMigrations(loadExtensions) {
13
- // Get a list of files in all specified migration directories
14
- const readMigrationsPromises = this.migrationsPaths.map((configDir) => {
15
- const absoluteDir = path.resolve(process.cwd(), configDir);
16
- return readdir(absoluteDir).then((files) => ({
17
- files,
18
- configDir,
19
- absoluteDir,
20
- }));
21
- });
22
-
23
- return Promise.all(readMigrationsPromises).then((allMigrations) => {
24
- const migrations = allMigrations.reduce((acc, migrationDirectory) => {
25
- // When true, files inside the folder should be sorted
26
- if (this.sortDirsSeparately) {
27
- migrationDirectory.files = migrationDirectory.files.sort();
28
- }
29
-
30
- migrationDirectory.files.forEach((file) =>
31
- acc.push({ file, directory: migrationDirectory.configDir })
32
- );
33
-
34
- return acc;
35
- }, []);
36
-
37
- // If true we have already sorted the migrations inside the folders
38
- // return the migrations fully qualified
39
- if (this.sortDirsSeparately) {
40
- return filterMigrations(
41
- this,
42
- migrations,
43
- loadExtensions || this.loadExtensions
44
- );
45
- }
46
-
47
- return filterMigrations(
48
- this,
49
- sortBy(migrations, 'file'),
50
- loadExtensions || this.loadExtensions
51
- );
52
- });
53
- }
54
-
55
- getMigrationName(migration) {
56
- return migration.file;
57
- }
58
-
59
- getMigration(migrationInfo) {
60
- return this.getFile(migrationInfo);
61
- }
62
- }
63
-
64
- function filterMigrations(migrationSource, migrations, loadExtensions) {
65
- return migrations.filter((migration) => {
66
- const migrationName = migrationSource.getMigrationName(migration);
67
- const extension = path.extname(migrationName);
68
- return loadExtensions.includes(extension);
69
- });
70
- }
71
-
72
- module.exports = {
73
- FsMigrations,
74
- };
1
+ const path = require('path');
2
+ const sortBy = require('lodash/sortBy');
3
+
4
+ const { readdir } = require('../../util/fs');
5
+ const { AbstractMigrationsLoader } = require('../../common/MigrationsLoader');
6
+
7
+ class FsMigrations extends AbstractMigrationsLoader {
8
+ /**
9
+ * Gets the migration names
10
+ * @returns Promise<string[]>
11
+ */
12
+ getMigrations(loadExtensions) {
13
+ // Get a list of files in all specified migration directories
14
+ const readMigrationsPromises = this.migrationsPaths.map((configDir) => {
15
+ const absoluteDir = path.resolve(process.cwd(), configDir);
16
+ return readdir(absoluteDir).then((files) => ({
17
+ files,
18
+ configDir,
19
+ absoluteDir,
20
+ }));
21
+ });
22
+
23
+ return Promise.all(readMigrationsPromises).then((allMigrations) => {
24
+ const migrations = allMigrations.reduce((acc, migrationDirectory) => {
25
+ // When true, files inside the folder should be sorted
26
+ if (this.sortDirsSeparately) {
27
+ migrationDirectory.files = migrationDirectory.files.sort();
28
+ }
29
+
30
+ migrationDirectory.files.forEach((file) =>
31
+ acc.push({ file, directory: migrationDirectory.configDir })
32
+ );
33
+
34
+ return acc;
35
+ }, []);
36
+
37
+ // If true we have already sorted the migrations inside the folders
38
+ // return the migrations fully qualified
39
+ if (this.sortDirsSeparately) {
40
+ return filterMigrations(
41
+ this,
42
+ migrations,
43
+ loadExtensions || this.loadExtensions
44
+ );
45
+ }
46
+
47
+ return filterMigrations(
48
+ this,
49
+ sortBy(migrations, 'file'),
50
+ loadExtensions || this.loadExtensions
51
+ );
52
+ });
53
+ }
54
+
55
+ getMigrationName(migration) {
56
+ return migration.file;
57
+ }
58
+
59
+ getMigration(migrationInfo) {
60
+ return this.getFile(migrationInfo);
61
+ }
62
+ }
63
+
64
+ function filterMigrations(migrationSource, migrations, loadExtensions) {
65
+ return migrations.filter((migration) => {
66
+ const migrationName = migrationSource.getMigrationName(migration);
67
+ const extension = path.extname(migrationName);
68
+ return loadExtensions.includes(extension);
69
+ });
70
+ }
71
+
72
+ module.exports = {
73
+ FsMigrations,
74
+ };
@@ -1,15 +1,15 @@
1
-
2
- exports.up = function(knex) {
3
- <% if (d.tableName) { %>
4
- return knex.schema.createTable("<%= d.tableName %>", function(t) {
5
- t.increments();
6
- t.timestamp();
7
- });
8
- <% } %>
9
- };
10
-
11
- exports.down = function(knex) {
12
- <% if (d.tableName) { %>
13
- return knex.schema.dropTable("<%= d.tableName %>");
14
- <% } %>
15
- };
1
+
2
+ exports.up = function(knex) {
3
+ <% if (d.tableName) { %>
4
+ return knex.schema.createTable("<%= d.tableName %>", function(t) {
5
+ t.increments();
6
+ t.timestamp();
7
+ });
8
+ <% } %>
9
+ };
10
+
11
+ exports.down = function(knex) {
12
+ <% if (d.tableName) { %>
13
+ return knex.schema.dropTable("<%= d.tableName %>");
14
+ <% } %>
15
+ };
@@ -1,13 +1,13 @@
1
-
2
- exports.up = (knex) ->
3
- <% if (d.tableName) { %>
4
- knex.schema.createTable "<%= d.tableName %>", (t) ->
5
- t.increments()
6
- t.timestamp()
7
- <% } %>
8
-
9
-
10
- exports.down = (knex) ->
11
- <% if (d.tableName) { %>
12
- knex.schema.dropTable "<%= d.tableName %>"
13
- <% } %>
1
+
2
+ exports.up = (knex) ->
3
+ <% if (d.tableName) { %>
4
+ knex.schema.createTable "<%= d.tableName %>", (t) ->
5
+ t.increments()
6
+ t.timestamp()
7
+ <% } %>
8
+
9
+
10
+ exports.down = (knex) ->
11
+ <% if (d.tableName) { %>
12
+ knex.schema.dropTable "<%= d.tableName %>"
13
+ <% } %>
@@ -1,14 +1,14 @@
1
- provide: up, down
2
-
3
- up = (knex) ->
4
- <% if (d.tableName) { %>
5
- knex.schema.createTable "<%= d.tableName %>": t ->
6
- t.increments()
7
- t.timestamp()
8
- <% } %>
9
-
10
-
11
- down = (knex) ->
12
- <% if (d.tableName) { %>
13
- knex.schema.dropTable("<%= d.tableName %>")
14
- <% } %>
1
+ provide: up, down
2
+
3
+ up = (knex) ->
4
+ <% if (d.tableName) { %>
5
+ knex.schema.createTable "<%= d.tableName %>": t ->
6
+ t.increments()
7
+ t.timestamp()
8
+ <% } %>
9
+
10
+
11
+ down = (knex) ->
12
+ <% if (d.tableName) { %>
13
+ knex.schema.dropTable("<%= d.tableName %>")
14
+ <% } %>
@@ -1,22 +1,22 @@
1
- /**
2
- * @param { import("knex").Knex } knex
3
- * @returns { Promise<void> }
4
- */
5
- exports.up = function({schema}) {
6
- <% if (d.tableName) { %>
7
- return schema.createTable("<%= d.tableName %>", function(t) {
8
- t.increments();
9
- t.timestamp();
10
- });
11
- <% } %>
12
- };
13
-
14
- /**
15
- * @param { import("knex").Knex } knex
16
- * @returns { Promise<void> }
17
- */
18
- exports.down = function({schema}) {
19
- <% if (d.tableName) { %>
20
- return schema.dropTable("<%= d.tableName %>");
21
- <% } %>
22
- };
1
+ /**
2
+ * @param { import("knex").Knex } knex
3
+ * @returns { Promise<void> }
4
+ */
5
+ exports.up = function({schema}) {
6
+ <% if (d.tableName) { %>
7
+ return schema.createTable("<%= d.tableName %>", function(t) {
8
+ t.increments();
9
+ t.timestamp();
10
+ });
11
+ <% } %>
12
+ };
13
+
14
+ /**
15
+ * @param { import("knex").Knex } knex
16
+ * @returns { Promise<void> }
17
+ */
18
+ exports.down = function({schema}) {
19
+ <% if (d.tableName) { %>
20
+ return schema.dropTable("<%= d.tableName %>");
21
+ <% } %>
22
+ };
@@ -1,22 +1,22 @@
1
- /**
2
- * @param { import("knex").Knex } knex
3
- * @returns { Promise<void> }
4
- */
5
- exports.up = function(knex) {
6
- <% if (d.tableName) { %>
7
- return knex.schema.createTable("<%= d.tableName %>", function(t) {
8
- t.increments();
9
- t.timestamp();
10
- });
11
- <% } %>
12
- };
13
-
14
- /**
15
- * @param { import("knex").Knex } knex
16
- * @returns { Promise<void> }
17
- */
18
- exports.down = function(knex) {
19
- <% if (d.tableName) { %>
20
- return knex.schema.dropTable("<%= d.tableName %>");
21
- <% } %>
22
- };
1
+ /**
2
+ * @param { import("knex").Knex } knex
3
+ * @returns { Promise<void> }
4
+ */
5
+ exports.up = function(knex) {
6
+ <% if (d.tableName) { %>
7
+ return knex.schema.createTable("<%= d.tableName %>", function(t) {
8
+ t.increments();
9
+ t.timestamp();
10
+ });
11
+ <% } %>
12
+ };
13
+
14
+ /**
15
+ * @param { import("knex").Knex } knex
16
+ * @returns { Promise<void> }
17
+ */
18
+ exports.down = function(knex) {
19
+ <% if (d.tableName) { %>
20
+ return knex.schema.dropTable("<%= d.tableName %>");
21
+ <% } %>
22
+ };
@@ -1,34 +1,34 @@
1
- # Update with your config settings.
2
-
3
- module.exports =
4
-
5
- development:
6
- client: 'sqlite3'
7
- connection:
8
- filename: './dev.sqlite3'
9
- migrations:
10
- tableName: 'knex_migrations'
11
-
12
- staging:
13
- client: 'postgresql'
14
- connection:
15
- database: 'my_db'
16
- user: 'username'
17
- password: 'password'
18
- pool:
19
- min: 2
20
- max: 10
21
- migrations:
22
- tableName: 'knex_migrations'
23
-
24
- production:
25
- client: 'postgresql'
26
- connection:
27
- database: 'my_db'
28
- user: 'username'
29
- password: 'password'
30
- pool:
31
- min: 2
32
- max: 10
33
- migrations:
34
- tableName: 'knex_migrations'
1
+ # Update with your config settings.
2
+
3
+ module.exports =
4
+
5
+ development:
6
+ client: 'sqlite3'
7
+ connection:
8
+ filename: './dev.sqlite3'
9
+ migrations:
10
+ tableName: 'knex_migrations'
11
+
12
+ staging:
13
+ client: 'postgresql'
14
+ connection:
15
+ database: 'my_db'
16
+ user: 'username'
17
+ password: 'password'
18
+ pool:
19
+ min: 2
20
+ max: 10
21
+ migrations:
22
+ tableName: 'knex_migrations'
23
+
24
+ production:
25
+ client: 'postgresql'
26
+ connection:
27
+ database: 'my_db'
28
+ user: 'username'
29
+ password: 'password'
30
+ pool:
31
+ min: 2
32
+ max: 10
33
+ migrations:
34
+ tableName: 'knex_migrations'