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.
Files changed (141) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/CONTRIBUTING.md +184 -184
  3. package/LICENSE +22 -22
  4. package/README.md +95 -95
  5. package/bin/cli.js +414 -414
  6. package/bin/utils/cli-config-utils.js +151 -151
  7. package/bin/utils/constants.js +7 -7
  8. package/bin/utils/migrationsLister.js +37 -37
  9. package/knex.js +8 -8
  10. package/lib/client.js +413 -413
  11. package/lib/config-resolver.js +61 -61
  12. package/lib/constants.js +44 -44
  13. package/lib/dialects/mssql/index.js +390 -390
  14. package/lib/dialects/mssql/query/compiler.js +444 -444
  15. package/lib/dialects/mssql/schema/columncompiler.js +103 -103
  16. package/lib/dialects/mssql/schema/compiler.js +59 -59
  17. package/lib/dialects/mssql/schema/tablecompiler.js +245 -245
  18. package/lib/dialects/mssql/transaction.js +97 -97
  19. package/lib/dialects/mysql/index.js +191 -191
  20. package/lib/dialects/mysql/query/compiler.js +142 -142
  21. package/lib/dialects/mysql/schema/columncompiler.js +171 -171
  22. package/lib/dialects/mysql/schema/compiler.js +60 -60
  23. package/lib/dialects/mysql/schema/tablecompiler.js +262 -262
  24. package/lib/dialects/mysql/transaction.js +48 -48
  25. package/lib/dialects/mysql2/index.js +35 -35
  26. package/lib/dialects/mysql2/transaction.js +46 -46
  27. package/lib/dialects/oracle/DEAD_CODE.md +5 -5
  28. package/lib/dialects/oracle/formatter.js +20 -20
  29. package/lib/dialects/oracle/index.js +79 -79
  30. package/lib/dialects/oracle/query/compiler.js +327 -327
  31. package/lib/dialects/oracle/schema/columnbuilder.js +18 -18
  32. package/lib/dialects/oracle/schema/columncompiler.js +139 -139
  33. package/lib/dialects/oracle/schema/compiler.js +81 -81
  34. package/lib/dialects/oracle/schema/tablecompiler.js +165 -165
  35. package/lib/dialects/oracle/schema/trigger.js +126 -126
  36. package/lib/dialects/oracle/utils.js +86 -86
  37. package/lib/dialects/oracledb/index.js +489 -489
  38. package/lib/dialects/oracledb/query/compiler.js +363 -363
  39. package/lib/dialects/oracledb/schema/columncompiler.js +35 -35
  40. package/lib/dialects/oracledb/transaction.js +76 -76
  41. package/lib/dialects/oracledb/utils.js +14 -14
  42. package/lib/dialects/postgres/index.js +319 -319
  43. package/lib/dialects/postgres/query/compiler.js +206 -206
  44. package/lib/dialects/postgres/schema/columncompiler.js +125 -125
  45. package/lib/dialects/postgres/schema/compiler.js +109 -109
  46. package/lib/dialects/postgres/schema/tablecompiler.js +183 -183
  47. package/lib/dialects/redshift/index.js +73 -73
  48. package/lib/dialects/redshift/query/compiler.js +119 -119
  49. package/lib/dialects/redshift/schema/columnbuilder.js +20 -20
  50. package/lib/dialects/redshift/schema/columncompiler.js +60 -60
  51. package/lib/dialects/redshift/schema/compiler.js +14 -14
  52. package/lib/dialects/redshift/schema/tablecompiler.js +123 -123
  53. package/lib/dialects/redshift/transaction.js +18 -18
  54. package/lib/dialects/sqlite3/formatter.js +21 -21
  55. package/lib/dialects/sqlite3/index.js +169 -169
  56. package/lib/dialects/sqlite3/query/compiler.js +222 -222
  57. package/lib/dialects/sqlite3/schema/columncompiler.js +27 -27
  58. package/lib/dialects/sqlite3/schema/compiler.js +49 -49
  59. package/lib/dialects/sqlite3/schema/ddl.js +525 -525
  60. package/lib/dialects/sqlite3/schema/tablecompiler.js +238 -238
  61. package/lib/formatter.js +295 -295
  62. package/lib/functionhelper.js +14 -14
  63. package/lib/helpers.js +92 -92
  64. package/lib/index.js +3 -3
  65. package/lib/interface.js +115 -115
  66. package/lib/knex.js +42 -42
  67. package/lib/logger.js +76 -76
  68. package/lib/migrate/MigrationGenerator.js +82 -82
  69. package/lib/migrate/Migrator.js +611 -611
  70. package/lib/migrate/configuration-merger.js +60 -60
  71. package/lib/migrate/migrate-stub.js +17 -17
  72. package/lib/migrate/migration-list-resolver.js +36 -36
  73. package/lib/migrate/sources/fs-migrations.js +99 -99
  74. package/lib/migrate/stub/cjs.stub +15 -15
  75. package/lib/migrate/stub/coffee.stub +13 -13
  76. package/lib/migrate/stub/eg.stub +14 -14
  77. package/lib/migrate/stub/js.stub +15 -15
  78. package/lib/migrate/stub/knexfile-coffee.stub +34 -34
  79. package/lib/migrate/stub/knexfile-eg.stub +43 -43
  80. package/lib/migrate/stub/knexfile-js.stub +44 -44
  81. package/lib/migrate/stub/knexfile-ls.stub +35 -35
  82. package/lib/migrate/stub/knexfile-ts.stub +44 -44
  83. package/lib/migrate/stub/ls.stub +14 -14
  84. package/lib/migrate/stub/ts.stub +21 -21
  85. package/lib/migrate/table-creator.js +67 -67
  86. package/lib/migrate/table-resolver.js +27 -27
  87. package/lib/query/builder.js +1372 -1372
  88. package/lib/query/compiler.js +889 -889
  89. package/lib/query/constants.js +13 -13
  90. package/lib/query/joinclause.js +263 -263
  91. package/lib/query/methods.js +92 -92
  92. package/lib/query/string.js +190 -190
  93. package/lib/raw.js +188 -188
  94. package/lib/ref.js +39 -39
  95. package/lib/runner.js +285 -285
  96. package/lib/schema/builder.js +82 -82
  97. package/lib/schema/columnbuilder.js +117 -117
  98. package/lib/schema/columncompiler.js +177 -177
  99. package/lib/schema/compiler.js +101 -101
  100. package/lib/schema/helpers.js +51 -51
  101. package/lib/schema/tablebuilder.js +288 -288
  102. package/lib/schema/tablecompiler.js +296 -296
  103. package/lib/seed/Seeder.js +203 -203
  104. package/lib/seed/seed-stub.js +13 -13
  105. package/lib/seed/stub/coffee.stub +9 -9
  106. package/lib/seed/stub/eg.stub +11 -11
  107. package/lib/seed/stub/js.stub +13 -13
  108. package/lib/seed/stub/ls.stub +11 -11
  109. package/lib/seed/stub/ts.stub +13 -13
  110. package/lib/transaction.js +363 -363
  111. package/lib/util/batchInsert.js +59 -59
  112. package/lib/util/delay.js +6 -6
  113. package/lib/util/fake-client.js +9 -9
  114. package/lib/util/finally-mixin.js +13 -13
  115. package/lib/util/fs.js +76 -76
  116. package/lib/util/import-file.js +13 -13
  117. package/lib/util/is-module-type.js +14 -14
  118. package/lib/util/is.js +32 -32
  119. package/lib/util/make-knex.js +338 -338
  120. package/lib/util/nanoid.js +29 -29
  121. package/lib/util/noop.js +1 -1
  122. package/lib/util/parse-connection.js +66 -66
  123. package/lib/util/save-async-stack.js +14 -14
  124. package/lib/util/template.js +52 -52
  125. package/lib/util/timeout.js +29 -29
  126. package/lib/util/timestamp.js +16 -16
  127. package/package.json +1 -1
  128. package/scripts/build.js +125 -125
  129. package/scripts/docker-compose.yml +111 -111
  130. package/scripts/next-release-howto.md +24 -24
  131. package/scripts/release.sh +34 -34
  132. package/scripts/runkit-example.js +34 -34
  133. package/scripts/stress-test/README.txt +18 -18
  134. package/scripts/stress-test/docker-compose.yml +47 -47
  135. package/scripts/stress-test/knex-stress-test.js +196 -196
  136. package/scripts/stress-test/mysql2-random-hanging-every-now-and-then.js +145 -145
  137. package/scripts/stress-test/mysql2-sudden-exit-without-error.js +100 -100
  138. package/scripts/stress-test/reconnect-test-mysql-based-drivers.js +184 -184
  139. package/types/index.d.ts +2249 -2249
  140. package/types/result.d.ts +27 -27
  141. package/types/tables.d.ts +4 -4
@@ -1,60 +1,60 @@
1
- const {
2
- FsMigrations,
3
- DEFAULT_LOAD_EXTENSIONS,
4
- } = require('./sources/fs-migrations');
5
- const Logger = require('../logger');
6
- const defaultLogger = new Logger();
7
-
8
- const CONFIG_DEFAULT = Object.freeze({
9
- extension: 'js',
10
- loadExtensions: DEFAULT_LOAD_EXTENSIONS,
11
- tableName: 'knex_migrations',
12
- schemaName: null,
13
- directory: './migrations',
14
- disableTransactions: false,
15
- disableMigrationsListValidation: false,
16
- sortDirsSeparately: false,
17
- });
18
-
19
- function getMergedConfig(config, currentConfig, logger = defaultLogger) {
20
- // config is the user specified config, mergedConfig has defaults and current config
21
- // applied to it.
22
- const mergedConfig = Object.assign(
23
- {},
24
- CONFIG_DEFAULT,
25
- currentConfig || {},
26
- config
27
- );
28
-
29
- if (
30
- config &&
31
- // If user specifies any FS related config,
32
- // clear specified migrationSource to avoid ambiguity
33
- (config.directory ||
34
- config.sortDirsSeparately !== undefined ||
35
- config.loadExtensions)
36
- ) {
37
- if (config.migrationSource) {
38
- logger.warn(
39
- 'FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations'
40
- );
41
- }
42
- mergedConfig.migrationSource = null;
43
- }
44
-
45
- // If the user has not specified any configs, we need to
46
- // default to fs migrations to maintain compatibility
47
- if (!mergedConfig.migrationSource) {
48
- mergedConfig.migrationSource = new FsMigrations(
49
- mergedConfig.directory,
50
- mergedConfig.sortDirsSeparately,
51
- mergedConfig.loadExtensions
52
- );
53
- }
54
-
55
- return mergedConfig;
56
- }
57
-
58
- module.exports = {
59
- getMergedConfig,
60
- };
1
+ const {
2
+ FsMigrations,
3
+ DEFAULT_LOAD_EXTENSIONS,
4
+ } = require('./sources/fs-migrations');
5
+ const Logger = require('../logger');
6
+ const defaultLogger = new Logger();
7
+
8
+ const CONFIG_DEFAULT = Object.freeze({
9
+ extension: 'js',
10
+ loadExtensions: DEFAULT_LOAD_EXTENSIONS,
11
+ tableName: 'knex_migrations',
12
+ schemaName: null,
13
+ directory: './migrations',
14
+ disableTransactions: false,
15
+ disableMigrationsListValidation: false,
16
+ sortDirsSeparately: false,
17
+ });
18
+
19
+ function getMergedConfig(config, currentConfig, logger = defaultLogger) {
20
+ // config is the user specified config, mergedConfig has defaults and current config
21
+ // applied to it.
22
+ const mergedConfig = Object.assign(
23
+ {},
24
+ CONFIG_DEFAULT,
25
+ currentConfig || {},
26
+ config
27
+ );
28
+
29
+ if (
30
+ config &&
31
+ // If user specifies any FS related config,
32
+ // clear specified migrationSource to avoid ambiguity
33
+ (config.directory ||
34
+ config.sortDirsSeparately !== undefined ||
35
+ config.loadExtensions)
36
+ ) {
37
+ if (config.migrationSource) {
38
+ logger.warn(
39
+ 'FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations'
40
+ );
41
+ }
42
+ mergedConfig.migrationSource = null;
43
+ }
44
+
45
+ // If the user has not specified any configs, we need to
46
+ // default to fs migrations to maintain compatibility
47
+ if (!mergedConfig.migrationSource) {
48
+ mergedConfig.migrationSource = new FsMigrations(
49
+ mergedConfig.directory,
50
+ mergedConfig.sortDirsSeparately,
51
+ mergedConfig.loadExtensions
52
+ );
53
+ }
54
+
55
+ return mergedConfig;
56
+ }
57
+
58
+ module.exports = {
59
+ getMergedConfig,
60
+ };
@@ -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,36 +1,36 @@
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
- const completedMigrations = await trxOrKnex
14
- .from(getTableName(tableName, schemaName))
15
- .orderBy('id')
16
- .select('name');
17
-
18
- return completedMigrations.map((migration) => {
19
- return migration.name;
20
- });
21
- }
22
-
23
- // Gets the migration list from the migration directory specified in config, as well as
24
- // the list of completed migrations to check what should be run.
25
- function listAllAndCompleted(config, trxOrKnex) {
26
- return Promise.all([
27
- listAll(config.migrationSource, config.loadExtensions),
28
- listCompleted(config.tableName, config.schemaName, trxOrKnex),
29
- ]);
30
- }
31
-
32
- module.exports = {
33
- listAll,
34
- listAllAndCompleted,
35
- listCompleted,
36
- };
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
+ const completedMigrations = await trxOrKnex
14
+ .from(getTableName(tableName, schemaName))
15
+ .orderBy('id')
16
+ .select('name');
17
+
18
+ return completedMigrations.map((migration) => {
19
+ return migration.name;
20
+ });
21
+ }
22
+
23
+ // Gets the migration list from the migration directory specified in config, as well as
24
+ // the list of completed migrations to check what should be run.
25
+ function listAllAndCompleted(config, trxOrKnex) {
26
+ return Promise.all([
27
+ listAll(config.migrationSource, config.loadExtensions),
28
+ listCompleted(config.tableName, config.schemaName, trxOrKnex),
29
+ ]);
30
+ }
31
+
32
+ module.exports = {
33
+ listAll,
34
+ listAllAndCompleted,
35
+ listCompleted,
36
+ };
@@ -1,99 +1,99 @@
1
- const path = require('path');
2
- const sortBy = require('lodash/sortBy');
3
-
4
- const { readdir } = require('../../util/fs');
5
-
6
- const DEFAULT_LOAD_EXTENSIONS = Object.freeze([
7
- '.co',
8
- '.coffee',
9
- '.eg',
10
- '.iced',
11
- '.js',
12
- '.cjs',
13
- '.litcoffee',
14
- '.ls',
15
- '.ts',
16
- ]);
17
-
18
- class FsMigrations {
19
- constructor(migrationDirectories, sortDirsSeparately, loadExtensions) {
20
- this.sortDirsSeparately = sortDirsSeparately;
21
-
22
- if (!Array.isArray(migrationDirectories)) {
23
- migrationDirectories = [migrationDirectories];
24
- }
25
- this.migrationsPaths = migrationDirectories;
26
- this.loadExtensions = loadExtensions || DEFAULT_LOAD_EXTENSIONS;
27
- }
28
-
29
- /**
30
- * Gets the migration names
31
- * @returns Promise<string[]>
32
- */
33
- getMigrations(loadExtensions) {
34
- // Get a list of files in all specified migration directories
35
- const readMigrationsPromises = this.migrationsPaths.map((configDir) => {
36
- const absoluteDir = path.resolve(process.cwd(), configDir);
37
- return readdir(absoluteDir).then((files) => ({
38
- files,
39
- configDir,
40
- absoluteDir,
41
- }));
42
- });
43
-
44
- return Promise.all(readMigrationsPromises).then((allMigrations) => {
45
- const migrations = allMigrations.reduce((acc, migrationDirectory) => {
46
- // When true, files inside the folder should be sorted
47
- if (this.sortDirsSeparately) {
48
- migrationDirectory.files = migrationDirectory.files.sort();
49
- }
50
-
51
- migrationDirectory.files.forEach((file) =>
52
- acc.push({ file, directory: migrationDirectory.configDir })
53
- );
54
-
55
- return acc;
56
- }, []);
57
-
58
- // If true we have already sorted the migrations inside the folders
59
- // return the migrations fully qualified
60
- if (this.sortDirsSeparately) {
61
- return filterMigrations(
62
- this,
63
- migrations,
64
- loadExtensions || this.loadExtensions
65
- );
66
- }
67
-
68
- return filterMigrations(
69
- this,
70
- sortBy(migrations, 'file'),
71
- loadExtensions || this.loadExtensions
72
- );
73
- });
74
- }
75
-
76
- getMigrationName(migration) {
77
- return migration.file;
78
- }
79
-
80
- getMigration(migration) {
81
- const absoluteDir = path.resolve(process.cwd(), migration.directory);
82
- const _path = path.join(absoluteDir, migration.file);
83
- const importFile = require('../../util/import-file'); // late import
84
- return importFile(_path);
85
- }
86
- }
87
-
88
- function filterMigrations(migrationSource, migrations, loadExtensions) {
89
- return migrations.filter((migration) => {
90
- const migrationName = migrationSource.getMigrationName(migration);
91
- const extension = path.extname(migrationName);
92
- return loadExtensions.includes(extension);
93
- });
94
- }
95
-
96
- module.exports = {
97
- DEFAULT_LOAD_EXTENSIONS,
98
- FsMigrations,
99
- };
1
+ const path = require('path');
2
+ const sortBy = require('lodash/sortBy');
3
+
4
+ const { readdir } = require('../../util/fs');
5
+
6
+ const DEFAULT_LOAD_EXTENSIONS = Object.freeze([
7
+ '.co',
8
+ '.coffee',
9
+ '.eg',
10
+ '.iced',
11
+ '.js',
12
+ '.cjs',
13
+ '.litcoffee',
14
+ '.ls',
15
+ '.ts',
16
+ ]);
17
+
18
+ class FsMigrations {
19
+ constructor(migrationDirectories, sortDirsSeparately, loadExtensions) {
20
+ this.sortDirsSeparately = sortDirsSeparately;
21
+
22
+ if (!Array.isArray(migrationDirectories)) {
23
+ migrationDirectories = [migrationDirectories];
24
+ }
25
+ this.migrationsPaths = migrationDirectories;
26
+ this.loadExtensions = loadExtensions || DEFAULT_LOAD_EXTENSIONS;
27
+ }
28
+
29
+ /**
30
+ * Gets the migration names
31
+ * @returns Promise<string[]>
32
+ */
33
+ getMigrations(loadExtensions) {
34
+ // Get a list of files in all specified migration directories
35
+ const readMigrationsPromises = this.migrationsPaths.map((configDir) => {
36
+ const absoluteDir = path.resolve(process.cwd(), configDir);
37
+ return readdir(absoluteDir).then((files) => ({
38
+ files,
39
+ configDir,
40
+ absoluteDir,
41
+ }));
42
+ });
43
+
44
+ return Promise.all(readMigrationsPromises).then((allMigrations) => {
45
+ const migrations = allMigrations.reduce((acc, migrationDirectory) => {
46
+ // When true, files inside the folder should be sorted
47
+ if (this.sortDirsSeparately) {
48
+ migrationDirectory.files = migrationDirectory.files.sort();
49
+ }
50
+
51
+ migrationDirectory.files.forEach((file) =>
52
+ acc.push({ file, directory: migrationDirectory.configDir })
53
+ );
54
+
55
+ return acc;
56
+ }, []);
57
+
58
+ // If true we have already sorted the migrations inside the folders
59
+ // return the migrations fully qualified
60
+ if (this.sortDirsSeparately) {
61
+ return filterMigrations(
62
+ this,
63
+ migrations,
64
+ loadExtensions || this.loadExtensions
65
+ );
66
+ }
67
+
68
+ return filterMigrations(
69
+ this,
70
+ sortBy(migrations, 'file'),
71
+ loadExtensions || this.loadExtensions
72
+ );
73
+ });
74
+ }
75
+
76
+ getMigrationName(migration) {
77
+ return migration.file;
78
+ }
79
+
80
+ getMigration(migration) {
81
+ const absoluteDir = path.resolve(process.cwd(), migration.directory);
82
+ const _path = path.join(absoluteDir, migration.file);
83
+ const importFile = require('../../util/import-file'); // late import
84
+ return importFile(_path);
85
+ }
86
+ }
87
+
88
+ function filterMigrations(migrationSource, migrations, loadExtensions) {
89
+ return migrations.filter((migration) => {
90
+ const migrationName = migrationSource.getMigrationName(migration);
91
+ const extension = path.extname(migrationName);
92
+ return loadExtensions.includes(extension);
93
+ });
94
+ }
95
+
96
+ module.exports = {
97
+ DEFAULT_LOAD_EXTENSIONS,
98
+ FsMigrations,
99
+ };
@@ -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,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,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'