db-modeling-markdown 1.0.5 → 2.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 (116) hide show
  1. package/CHANGELOG.md +24 -3
  2. package/CONTRIBUTING.md +78 -0
  3. package/README.md +63 -46
  4. package/dist/dialects/core/dbImportProvider.d.ts +5 -0
  5. package/dist/dialects/core/dbImportProvider.js +7 -0
  6. package/dist/dialects/core/dbImportProvider.js.map +1 -0
  7. package/dist/dialects/core/dbProvider.d.ts +19 -6
  8. package/dist/dialects/core/dbProvider.js +40 -6
  9. package/dist/dialects/core/dbProvider.js.map +1 -1
  10. package/dist/dialects/core/dbUtils.d.ts +35 -0
  11. package/dist/dialects/core/dbUtils.js +159 -0
  12. package/dist/dialects/core/dbUtils.js.map +1 -0
  13. package/dist/dialects/core/providerFactory.d.ts +3 -1
  14. package/dist/dialects/core/providerFactory.js +28 -3
  15. package/dist/dialects/core/providerFactory.js.map +1 -1
  16. package/dist/dialects/db2/db2Provider.d.ts +2 -1
  17. package/dist/dialects/db2/db2Provider.js +75 -46
  18. package/dist/dialects/db2/db2Provider.js.map +1 -1
  19. package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -0
  20. package/dist/dialects/mariadb/mariaDbImportProvider.js +254 -0
  21. package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -0
  22. package/dist/dialects/mariadb/mariaDbProvider.d.ts +11 -11
  23. package/dist/dialects/mariadb/mariaDbProvider.js +128 -161
  24. package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
  25. package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -0
  26. package/dist/dialects/mariadb/mariaDbUtil.js +23 -0
  27. package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -0
  28. package/dist/dialects/mssql/msSqlProvider.d.ts +2 -1
  29. package/dist/dialects/mssql/msSqlProvider.js +128 -73
  30. package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
  31. package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -0
  32. package/dist/dialects/mysql/mySqlImportProvider.js +8 -0
  33. package/dist/dialects/mysql/mySqlImportProvider.js.map +1 -0
  34. package/dist/dialects/mysql/mySqlProvider.d.ts +2 -20
  35. package/dist/dialects/mysql/mySqlProvider.js +2 -182
  36. package/dist/dialects/mysql/mySqlProvider.js.map +1 -1
  37. package/dist/dialects/oracle/oracleProvider.d.ts +5 -1
  38. package/dist/dialects/oracle/oracleProvider.js +111 -70
  39. package/dist/dialects/oracle/oracleProvider.js.map +1 -1
  40. package/dist/dialects/postgresql/postgreSqlProvider.d.ts +2 -1
  41. package/dist/dialects/postgresql/postgreSqlProvider.js +34 -31
  42. package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
  43. package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +2 -1
  44. package/dist/dialects/sqlite/sqliteSqlProvider.js +38 -28
  45. package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
  46. package/dist/index.d.ts +9 -4
  47. package/dist/index.js +5 -5
  48. package/dist/index.js.map +1 -1
  49. package/dist/lib/code-flow/codeFlow.js.map +1 -1
  50. package/dist/lib/markdown-object/markdownModel.d.ts +0 -4
  51. package/dist/lib/markdown-object/markdownModel.js +0 -4
  52. package/dist/lib/markdown-object/markdownModel.js.map +1 -1
  53. package/dist/lib/markdown-object/markdownReader.d.ts +19 -0
  54. package/dist/lib/markdown-object/markdownReader.js +85 -28
  55. package/dist/lib/markdown-object/markdownReader.js.map +1 -1
  56. package/dist/lib/markdown-object/markdownWriter.d.ts +25 -1
  57. package/dist/lib/markdown-object/markdownWriter.js +117 -52
  58. package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
  59. package/dist/lib/markdown-object/readerContext.js +3 -1
  60. package/dist/lib/markdown-object/readerContext.js.map +1 -1
  61. package/dist/lib/utils/fileHelper.d.ts +4 -0
  62. package/dist/lib/utils/fileHelper.js +20 -1
  63. package/dist/lib/utils/fileHelper.js.map +1 -1
  64. package/dist/lib/utils/logger.js.map +1 -1
  65. package/dist/lib/utils/markdownParser.js +3 -6
  66. package/dist/lib/utils/markdownParser.js.map +1 -1
  67. package/dist/lib/utils/sqlHelper.js.map +1 -1
  68. package/dist/lib/utils/textFileReader.js +2 -2
  69. package/dist/lib/utils/textFileReader.js.map +1 -1
  70. package/dist/lib/utils/textHelper.d.ts +18 -0
  71. package/dist/lib/utils/textHelper.js +62 -0
  72. package/dist/lib/utils/textHelper.js.map +1 -1
  73. package/dist/{services → models}/databaseTypes.d.ts +0 -0
  74. package/dist/{services → models}/databaseTypes.js +0 -0
  75. package/dist/models/databaseTypes.js.map +1 -0
  76. package/dist/models/dbColumn.d.ts +43 -0
  77. package/dist/models/dbColumn.js +3 -0
  78. package/dist/models/dbColumn.js.map +1 -0
  79. package/dist/models/dbDiffModel.d.ts +43 -0
  80. package/dist/models/dbDiffModel.js +3 -0
  81. package/dist/models/dbDiffModel.js.map +1 -0
  82. package/dist/models/dbForeignKey.d.ts +33 -0
  83. package/dist/models/dbForeignKey.js +3 -0
  84. package/dist/models/dbForeignKey.js.map +1 -0
  85. package/dist/models/dbIndex.d.ts +28 -0
  86. package/dist/models/dbIndex.js +3 -0
  87. package/dist/models/dbIndex.js.map +1 -0
  88. package/dist/models/dbIndexType.d.ts +8 -0
  89. package/dist/models/dbIndexType.js +13 -0
  90. package/dist/models/dbIndexType.js.map +1 -0
  91. package/dist/models/dbModel.d.ts +10 -0
  92. package/dist/{services → models}/dbModel.js +0 -0
  93. package/dist/{services → models}/dbModel.js.map +1 -1
  94. package/dist/models/dbPrimaryKey.d.ts +16 -0
  95. package/dist/models/dbPrimaryKey.js +3 -0
  96. package/dist/models/dbPrimaryKey.js.map +1 -0
  97. package/dist/models/dbTable.d.ts +49 -0
  98. package/dist/models/dbTable.js +3 -0
  99. package/dist/models/dbTable.js.map +1 -0
  100. package/dist/models/dbTableMarkdown.d.ts +34 -0
  101. package/dist/models/dbTableMarkdown.js +3 -0
  102. package/dist/models/dbTableMarkdown.js.map +1 -0
  103. package/dist/services/dbOptions.d.ts +35 -0
  104. package/dist/services/dbOptions.js +18 -0
  105. package/dist/services/dbOptions.js.map +1 -0
  106. package/dist/services/dbmOptions.d.ts +1 -1
  107. package/dist/services/dbmOptions.js +1 -1
  108. package/dist/services/dbmOptions.js.map +1 -1
  109. package/dist/services/dbmService.d.ts +36 -1
  110. package/dist/services/dbmService.js +80 -13
  111. package/dist/services/dbmService.js.map +1 -1
  112. package/package.json +74 -81
  113. package/.eslintcache +0 -1
  114. package/.prettierrc +0 -8
  115. package/dist/services/databaseTypes.js.map +0 -1
  116. package/dist/services/dbModel.d.ts +0 -135
@@ -1,5 +1,7 @@
1
- import { DatabaseTypes } from '../../services/databaseTypes';
1
+ import { DatabaseTypes } from '../../models/databaseTypes';
2
+ import { DbImportProvider } from './dbImportProvider';
2
3
  import { DbProvider } from './dbProvider';
3
4
  export declare class ProviderFactory {
4
5
  static getProvider(providerName: DatabaseTypes): DbProvider;
6
+ static getImportProvider(providerName: DatabaseTypes): DbImportProvider;
5
7
  }
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProviderFactory = void 0;
4
- const databaseTypes_1 = require("../../services/databaseTypes");
4
+ const databaseTypes_1 = require("../../models/databaseTypes");
5
5
  const db2Provider_1 = require("../db2/db2Provider");
6
- const oracleProvider_1 = require("../oracle/oracleProvider");
6
+ const mariaDbImportProvider_1 = require("../mariadb/mariaDbImportProvider");
7
7
  const mariaDbProvider_1 = require("../mariadb/mariaDbProvider");
8
- const mySqlProvider_1 = require("../mysql/mySqlProvider");
9
8
  const msSqlProvider_1 = require("../mssql/msSqlProvider");
9
+ const mySqlProvider_1 = require("../mysql/mySqlProvider");
10
+ const oracleProvider_1 = require("../oracle/oracleProvider");
10
11
  const postgreSqlProvider_1 = require("../postgresql/postgreSqlProvider");
11
12
  const sqliteSqlProvider_1 = require("../sqlite/sqliteSqlProvider");
12
13
  class ProviderFactory {
@@ -34,6 +35,30 @@ class ProviderFactory {
34
35
  }
35
36
  return new oracleProvider_1.OracleProvider();
36
37
  }
38
+ static getImportProvider(providerName) {
39
+ if (providerName === databaseTypes_1.DatabaseTypes.db2) {
40
+ throw new Error(`${providerName} is not implemented`);
41
+ }
42
+ if (providerName === databaseTypes_1.DatabaseTypes.mariadb) {
43
+ return new mariaDbImportProvider_1.MariaDbImportProvider();
44
+ }
45
+ if (providerName === databaseTypes_1.DatabaseTypes.mssql) {
46
+ throw new Error(`${providerName} is not implemented`);
47
+ }
48
+ if (providerName === databaseTypes_1.DatabaseTypes.mysql) {
49
+ return new mariaDbImportProvider_1.MariaDbImportProvider();
50
+ }
51
+ if (providerName === databaseTypes_1.DatabaseTypes.oracle) {
52
+ throw new Error(`${providerName} is not implemented`);
53
+ }
54
+ if (providerName === databaseTypes_1.DatabaseTypes.postgresql) {
55
+ throw new Error(`${providerName} is not implemented`);
56
+ }
57
+ if (providerName === databaseTypes_1.DatabaseTypes.sqlite) {
58
+ throw new Error(`${providerName} is not implemented`);
59
+ }
60
+ throw new Error(`${providerName} is not implemented`);
61
+ }
37
62
  }
38
63
  exports.ProviderFactory = ProviderFactory;
39
64
  //# sourceMappingURL=providerFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/dialects/core/providerFactory.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAE7D,oDAAiD;AACjD,6DAA0D;AAC1D,gEAA6D;AAC7D,0DAAuD;AACvD,0DAAuD;AACvD,yEAAsE;AACtE,mEAA6D;AAE7D,MAAa,eAAe;IACpB,MAAM,CAAC,WAAW,CAAC,YAA2B;QACpD,IAAI,YAAY,KAAK,6BAAa,CAAC,GAAG,EAAE;YACvC,OAAO,IAAI,yBAAW,EAAE,CAAC;SACzB;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,OAAO,EAAE;YAC3C,OAAO,IAAI,iCAAe,EAAE,CAAC;SAC7B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,KAAK,EAAE;YACzC,OAAO,IAAI,6BAAa,EAAE,CAAC;SAC3B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,KAAK,EAAE;YACzC,OAAO,IAAI,6BAAa,EAAE,CAAC;SAC3B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,MAAM,EAAE;YAC1C,OAAO,IAAI,+BAAc,EAAE,CAAC;SAC5B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,UAAU,EAAE;YAC9C,OAAO,IAAI,uCAAkB,EAAE,CAAC;SAChC;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,MAAM,EAAE;YAC1C,OAAO,IAAI,kCAAc,EAAE,CAAC;SAC5B;QACD,OAAO,IAAI,+BAAc,EAAE,CAAC;IAC7B,CAAC;CACD;AAzBD,0CAyBC"}
1
+ {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/dialects/core/providerFactory.ts"],"names":[],"mappings":";;;AAAA,8DAA0D;AAC1D,oDAAgD;AAChD,4EAAwE;AACxE,gEAA4D;AAC5D,0DAAsD;AACtD,0DAAsD;AACtD,6DAAyD;AACzD,yEAAqE;AACrE,mEAA4D;AAI5D,MAAa,eAAe;IACpB,MAAM,CAAC,WAAW,CAAC,YAA2B;QACpD,IAAI,YAAY,KAAK,6BAAa,CAAC,GAAG,EAAE;YACvC,OAAO,IAAI,yBAAW,EAAE,CAAA;SACxB;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,OAAO,EAAE;YAC3C,OAAO,IAAI,iCAAe,EAAE,CAAA;SAC5B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,KAAK,EAAE;YACzC,OAAO,IAAI,6BAAa,EAAE,CAAA;SAC1B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,KAAK,EAAE;YACzC,OAAO,IAAI,6BAAa,EAAE,CAAA;SAC1B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,MAAM,EAAE;YAC1C,OAAO,IAAI,+BAAc,EAAE,CAAA;SAC3B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,UAAU,EAAE;YAC9C,OAAO,IAAI,uCAAkB,EAAE,CAAA;SAC/B;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,MAAM,EAAE;YAC1C,OAAO,IAAI,kCAAc,EAAE,CAAA;SAC3B;QACD,OAAO,IAAI,+BAAc,EAAE,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,YAA2B;QAC1D,IAAI,YAAY,KAAK,6BAAa,CAAC,GAAG,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;SACrD;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,OAAO,EAAE;YAC3C,OAAO,IAAI,6CAAqB,EAAE,CAAA;SAClC;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,KAAK,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;SACrD;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,KAAK,EAAE;YACzC,OAAO,IAAI,6CAAqB,EAAE,CAAA;SAClC;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,MAAM,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;SACrD;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,UAAU,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;SACrD;QACD,IAAI,YAAY,KAAK,6BAAa,CAAC,MAAM,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;SACrD;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;IACtD,CAAC;CACD;AAlDD,0CAkDC"}
@@ -1,4 +1,5 @@
1
- import { DbModel, DbTable } from '../../services/dbModel';
1
+ import { DbModel } from '../../models/dbModel';
2
+ import { DbTable } from '../../models/dbTable';
2
3
  import { DbProvider } from '../core/dbProvider';
3
4
  export declare class Db2Provider extends DbProvider {
4
5
  private sqlStatementEnd;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
+ /* eslint-disable class-methods-use-this */
3
+ /* eslint-disable prefer-template */
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
5
  exports.Db2Provider = void 0;
4
- const dbProvider_1 = require("../core/dbProvider");
5
6
  const sqlHelper_1 = require("../../lib/utils/sqlHelper");
7
+ const dbProvider_1 = require("../core/dbProvider");
6
8
  class Db2Provider extends dbProvider_1.DbProvider {
7
9
  constructor() {
8
10
  super(...arguments);
@@ -48,86 +50,105 @@ class Db2Provider extends dbProvider_1.DbProvider {
48
50
  });
49
51
  }
50
52
  getSQLCreateTableSingle(table, withComment) {
51
- var _a, _b, _c;
53
+ const result = {
54
+ sqlCreateFK: '',
55
+ sqlCreateTable: '',
56
+ };
57
+ if (!table.columns) {
58
+ return result;
59
+ }
52
60
  // Create Columns sql
53
61
  let sqlColumn;
54
62
  sqlColumn = '';
55
63
  table.columns.forEach((column, index) => {
56
- const sqlDefault = (column.default && column.default.length > 0 ? ` DEFAULT ${column.default}` : '');
57
- sqlColumn += dbProvider_1.line + ` ${(index === 0 ? ' ' : ',')}${column.name} ${column.type} ${column.nullable ? 'NULL' : 'NOT NULL'}${sqlDefault}`;
64
+ const sqlDefault = column.default && column.default.length > 0 ? ` DEFAULT ${column.default}` : '';
65
+ sqlColumn +=
66
+ dbProvider_1.line +
67
+ ` ${index === 0 ? ' ' : ','}${column.name} ${column.type} ${column.nullable ? 'NULL' : 'NOT NULL'}${sqlDefault}`;
58
68
  });
59
69
  // Primary key SQL
60
70
  let sqlPrimaryKey;
61
71
  sqlPrimaryKey = '';
62
72
  if (table.primaryKey && table.primaryKey.columns) {
63
- sqlPrimaryKey = dbProvider_1.line + ` ,CONSTRAINT ${this.renderPkName(table)} PRIMARY KEY (${table.primaryKey.columns})`;
73
+ sqlPrimaryKey =
74
+ dbProvider_1.line + ` ,CONSTRAINT ${this.renderPkName(table)} PRIMARY KEY (${table.primaryKey.columns})`;
64
75
  }
65
76
  // Unique Indexes SQL
66
77
  let sqlUniqueIndex;
67
78
  sqlUniqueIndex = '';
68
- (_a = table.indexes) === null || _a === void 0 ? void 0 : _a.forEach((dbIndex) => {
79
+ table.indexes?.forEach((dbIndex) => {
69
80
  if (dbIndex.unique) {
70
- const sqlCluster = (dbIndex.cluster ? ' CLUSTER' : '');
71
- sqlUniqueIndex += dbProvider_1.line
72
- + `CREATE UNIQUE INDEX ${this.renderIndexName(table, dbIndex)} ON ${table.name} (${dbIndex.columns})${sqlCluster}`
73
- + this.sqlStatementEnd;
81
+ const sqlCluster = dbIndex.cluster ? ' CLUSTER' : '';
82
+ sqlUniqueIndex +=
83
+ dbProvider_1.line +
84
+ `CREATE UNIQUE INDEX ${this.renderIndexName(table, dbIndex)} ON ${table.name} (${dbIndex.columns})${sqlCluster}` +
85
+ this.sqlStatementEnd;
74
86
  }
75
87
  });
76
88
  // non-unique Indexes SQL
77
89
  let sqlNoUniqueIndex;
78
90
  sqlNoUniqueIndex = '';
79
- (_b = table.indexes) === null || _b === void 0 ? void 0 : _b.forEach((dbIndex) => {
91
+ table.indexes?.forEach((dbIndex) => {
80
92
  if (!dbIndex.unique) {
81
- const sqlCluster = (dbIndex.cluster ? ' CLUSTER' : '');
82
- sqlNoUniqueIndex += dbProvider_1.line
83
- + `CREATE INDEX ${this.renderIndexName(table, dbIndex)} ON ${table.name} (${dbIndex.columns})${sqlCluster}`
84
- + this.sqlStatementEnd;
93
+ const sqlCluster = dbIndex.cluster ? ' CLUSTER' : '';
94
+ sqlNoUniqueIndex +=
95
+ dbProvider_1.line +
96
+ `CREATE INDEX ${this.renderIndexName(table, dbIndex)} ON ${table.name} (${dbIndex.columns})${sqlCluster}` +
97
+ this.sqlStatementEnd;
85
98
  }
86
99
  });
87
- const result = {
88
- sqlCreateFK: '',
89
- sqlCreateTable: '',
90
- };
91
100
  // Generate table sql
92
- result.sqlCreateTable = `-- Create table '${table.name}'`
93
- + dbProvider_1.line + `CREATE TABLE ${table.name} (`
94
- + `${sqlColumn}`
95
- + `${sqlPrimaryKey}`
96
- + dbProvider_1.line + ')' + this.sqlStatementEnd
97
- + `${sqlUniqueIndex}`
98
- + `${sqlNoUniqueIndex}`;
101
+ result.sqlCreateTable =
102
+ `-- Create table '${table.name}'` +
103
+ dbProvider_1.line +
104
+ `CREATE TABLE ${table.name} (` +
105
+ `${sqlColumn}` +
106
+ `${sqlPrimaryKey}` +
107
+ dbProvider_1.line +
108
+ ')' +
109
+ this.sqlStatementEnd +
110
+ `${sqlUniqueIndex}` +
111
+ `${sqlNoUniqueIndex}`;
99
112
  // Generate Foreign key SQL
100
113
  result.sqlCreateFK = '';
101
114
  if (table.foreignKeys && table.foreignKeys.length > 0) {
102
115
  result.sqlCreateFK = `-- Foreign keys for table '${table.name}'` + dbProvider_1.line;
103
116
  }
104
- (_c = table.foreignKeys) === null || _c === void 0 ? void 0 : _c.forEach((foreignKey, index) => {
105
- result.sqlCreateFK += `${index === 0 ? '' : dbProvider_1.line}ALTER TABLE ${table.name}`
106
- + dbProvider_1.line + ` ADD CONSTRAINT ${this.renderFkName(table, foreignKey)}`
107
- + dbProvider_1.line + ` FOREIGN KEY (${foreignKey.columns})`
108
- + dbProvider_1.line + ` REFERENCES ${foreignKey.refTable}(${foreignKey.refColumns})${foreignKey.options ? ' ' + foreignKey.options : ''}`
109
- + this.sqlStatementEnd;
117
+ table.foreignKeys?.forEach((foreignKey, index) => {
118
+ result.sqlCreateFK +=
119
+ `${index === 0 ? '' : dbProvider_1.line}ALTER TABLE ${table.name}` +
120
+ dbProvider_1.line +
121
+ ` ADD CONSTRAINT ${this.renderFkName(table, foreignKey)}` +
122
+ dbProvider_1.line +
123
+ ` FOREIGN KEY (${foreignKey.columns})` +
124
+ dbProvider_1.line +
125
+ ` REFERENCES ${foreignKey.refTable}(${foreignKey.refColumns})${foreignKey.options ? ' ' + foreignKey.options : ''}` +
126
+ this.sqlStatementEnd;
110
127
  });
111
128
  // Table comment
112
129
  let sqlComment;
113
130
  sqlComment = '';
114
131
  if (withComment && table.comment.length > 0) {
115
- sqlComment = dbProvider_1.line + `COMMENT ON TABLE ${table.name} IS ${sqlHelper_1.SqlHelper.toSQL(table.comment)}` + this.sqlStatementEnd;
132
+ sqlComment =
133
+ dbProvider_1.line +
134
+ `COMMENT ON TABLE ${table.name} IS ${sqlHelper_1.SqlHelper.toSQL(table.comment)}` +
135
+ this.sqlStatementEnd;
116
136
  }
117
137
  // Column comment
118
138
  if (withComment) {
119
139
  table.columns.forEach((column) => {
120
140
  const sqlDescription = this.getColumnComment(column);
121
141
  if (sqlDescription.length > 0) {
122
- sqlComment += dbProvider_1.line
123
- + `COMMENT ON COLUMN ${table.name}.${column.name} `
124
- + `IS ${sqlHelper_1.SqlHelper.toSQL(sqlDescription)}` + this.sqlStatementEnd;
142
+ sqlComment +=
143
+ dbProvider_1.line +
144
+ `COMMENT ON COLUMN ${table.name}.${column.name} ` +
145
+ `IS ${sqlHelper_1.SqlHelper.toSQL(sqlDescription)}` +
146
+ this.sqlStatementEnd;
125
147
  }
126
148
  });
127
149
  }
128
150
  if (sqlComment.length > 0) {
129
- result.sqlCreateTable += dbProvider_1.line
130
- + sqlComment;
151
+ result.sqlCreateTable += dbProvider_1.line + sqlComment;
131
152
  }
132
153
  return result;
133
154
  }
@@ -140,14 +161,22 @@ class Db2Provider extends dbProvider_1.DbProvider {
140
161
  }
141
162
  getSQLDropTableSingle(table) {
142
163
  const tableName = table.name.toUpperCase();
143
- return `-- Drop table '${table.name}'`
144
- + dbProvider_1.line + 'BEGIN'
145
- + dbProvider_1.line + ' IF EXISTS (SELECT * FROM SYSCAT.TABLES'
146
- + dbProvider_1.line + ' WHERE TABSCHEMA = CURRENT_SCHEMA'
147
- + dbProvider_1.line + ` AND TABNAME = '${tableName}') THEN`
148
- + dbProvider_1.line + ` EXECUTE IMMEDIATE 'DROP TABLE ${table.name}';`
149
- + dbProvider_1.line + ' END IF;'
150
- + dbProvider_1.line + 'END' + this.sqlStatementEnd;
164
+ return (`-- Drop table '${table.name}'` +
165
+ dbProvider_1.line +
166
+ 'BEGIN' +
167
+ dbProvider_1.line +
168
+ ' IF EXISTS (SELECT * FROM SYSCAT.TABLES' +
169
+ dbProvider_1.line +
170
+ ' WHERE TABSCHEMA = CURRENT_SCHEMA' +
171
+ dbProvider_1.line +
172
+ ` AND TABNAME = '${tableName}') THEN` +
173
+ dbProvider_1.line +
174
+ ` EXECUTE IMMEDIATE 'DROP TABLE ${table.name}';` +
175
+ dbProvider_1.line +
176
+ ' END IF;' +
177
+ dbProvider_1.line +
178
+ 'END' +
179
+ this.sqlStatementEnd);
151
180
  }
152
181
  outputSetTerminator() {
153
182
  const sSQL = '--#SET TERMINATOR' + this.sqlStatementEnd;
@@ -1 +1 @@
1
- {"version":3,"file":"db2Provider.js","sourceRoot":"","sources":["../../../src/dialects/db2/db2Provider.ts"],"names":[],"mappings":";;;AASA,mDAAsD;AACtD,yDAAsD;AAEtD,MAAa,WAAY,SAAQ,uBAAU;IAA3C;;QACS,oBAAe,GAAG,IAAI,CAAC;QAEvB,yBAAoB,GAAG,CAAC,CAAC;IA0LlC,CAAC;IAxLO,4BAA4B,CAAC,KAAc;QACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEM,iBAAiB,CACvB,KAAc,EACd,WAAoB;QAEpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEM,eAAe,CAAC,KAAc;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,iBAAiB;QACjB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEM,yBAAyB,CAC/B,KAAc,EACd,WAAoB;QAEpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,iBAAiB;QACjB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEpC,oBAAoB;QACpB,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEO,yBAAyB,CAChC,KAAc,EACd,WAAoB;QAEpB,gBAAgB;QAChB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,uBAAuB,CACnE,KAAK,EACL,WAAW,CACX,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;aACxD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,uBAAuB,CAC7B,KAAc,EACd,WAAoB;;QAKpB,qBAAqB;QACrB,IAAI,SAAiB,CAAC;QACtB,SAAS,GAAG,EAAE,CAAC;QAEf,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAgB,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrG,SAAS,IAAI,iBAAI,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;QACzI,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,aAAqB,CAAC;QAC1B,aAAa,GAAG,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE;YACjD,aAAa,GAAG,iBAAI,GAAG,iBAAiB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC;SAC7G;QAED,qBAAqB;QACrB,IAAI,cAAsB,CAAC;QAC3B,cAAc,GAAG,EAAE,CAAC;QACpB,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;YAC3C,IAAI,OAAO,CAAC,MAAM,EAAE;gBACnB,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvD,cAAc,IAAI,iBAAI;sBACnB,uBAAuB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE;sBAChH,IAAI,CAAC,eAAe,CAAC;aACxB;QACF,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,gBAAwB,CAAC;QAC7B,gBAAgB,GAAG,EAAE,CAAC;QACtB,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACpB,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvD,gBAAgB,IAAI,iBAAI;sBACrB,gBAAgB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE;sBACzG,IAAI,CAAC,eAAe,CAAC;aACxB;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACd,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;SAClB,CAAC;QAEF,qBAAqB;QACrB,MAAM,CAAC,cAAc,GAAG,oBAAoB,KAAK,CAAC,IAAI,GAAG;cACtD,iBAAI,GAAG,gBAAgB,KAAK,CAAC,IAAI,IAAI;cACrC,GAAG,SAAS,EAAE;cACd,GAAG,aAAa,EAAE;cAClB,iBAAI,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe;cACjC,GAAG,cAAc,EAAE;cACnB,GAAG,gBAAgB,EAAE,CAAC;QAEzB,2BAA2B;QAC3B,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,CAAC,WAAW,GAAG,8BAA8B,KAAK,CAAC,IAAI,GAAG,GAAG,iBAAI,CAAC;SACxE;QAED,MAAA,KAAK,CAAC,WAAW,0CAAE,OAAO,CAAC,CAAC,UAAuB,EAAE,KAAK,EAAE,EAAE;YAC7D,MAAM,CAAC,WAAW,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAI,eAAe,KAAK,CAAC,IAAI,EAAE;kBACxE,iBAAI,GAAG,oBAAoB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;kBACjE,iBAAI,GAAG,kBAAkB,UAAU,CAAC,OAAO,GAAG;kBAC9C,iBAAI,GAAG,gBAAgB,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;kBAC3H,IAAI,CAAC,eAAe,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,UAAkB,CAAC;QACvB,UAAU,GAAG,EAAE,CAAC;QAEhB,IAAI,WAAW,IAAI,KAAK,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,UAAU,GAAG,iBAAI,GAAG,oBAAoB,KAAK,CAAC,IAAI,OAAO,qBAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;SACjH;QAED,iBAAiB;QACjB,IAAI,WAAW,EAAE;YAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,UAAU,IAAI,iBAAI;0BACf,qBAAqB,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG;0BACjD,MAAM,qBAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;iBAClE;YACF,CAAC,CAAC,CAAC;SACH;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,CAAC,cAAc,IAAI,iBAAI;kBAC1B,UAAU,CAAC;SACd;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,uBAAuB,CAAC,KAAc;QAC5C,cAAc;QACd,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,KAAc;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,kBAAkB,KAAK,CAAC,IAAI,GAAG;cACnC,iBAAI,GAAG,OAAO;cACd,iBAAI,GAAG,0CAA0C;cACjD,iBAAI,GAAG,+CAA+C;cACtD,iBAAI,GAAG,+BAA+B,SAAS,SAAS;cACxD,iBAAI,GAAG,qCAAqC,KAAK,CAAC,IAAI,IAAI;cAC1D,iBAAI,GAAG,WAAW;cAClB,iBAAI,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;IACxC,CAAC;IAEO,mBAAmB;QAC1B,MAAM,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;CACD;AA7LD,kCA6LC"}
1
+ {"version":3,"file":"db2Provider.js","sourceRoot":"","sources":["../../../src/dialects/db2/db2Provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { DbModel } from '../../models/dbModel';
2
+ import { DbTable } from '../../models/dbTable';
3
+ import { DbOptions } from '../../services/dbOptions';
4
+ import { DbImportProvider } from '../core/dbImportProvider';
5
+ export declare class MariaDbImportProvider extends DbImportProvider {
6
+ tableMap: Map<string, DbTable>;
7
+ static DATA_TYPES_WITH_LENGTH: string[];
8
+ static REGEX_LEN_EXPR: RegExp;
9
+ constructor();
10
+ getModel(dbOptions: DbOptions): Promise<DbModel>;
11
+ private getModelInternal;
12
+ private createTable;
13
+ private RenderPKAndIndex;
14
+ private RenderForeignKey;
15
+ private RenderColumn;
16
+ private GetColumnDataType;
17
+ private IsText;
18
+ private labelIt;
19
+ }
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MariaDbImportProvider = void 0;
4
+ const dbImportProvider_1 = require("../core/dbImportProvider");
5
+ const mariaDbUtil_1 = require("./mariaDbUtil");
6
+ class MariaDbImportProvider extends dbImportProvider_1.DbImportProvider {
7
+ constructor() {
8
+ super();
9
+ this.tableMap = new Map();
10
+ }
11
+ async getModel(dbOptions) {
12
+ const conn = await mariaDbUtil_1.MariaDbUtil.getConnection(dbOptions);
13
+ const model = { tables: [] };
14
+ try {
15
+ await this.getModelInternal(conn, model);
16
+ }
17
+ finally {
18
+ conn.end();
19
+ }
20
+ return model;
21
+ }
22
+ async getModelInternal(conn, model) {
23
+ await this.RenderColumn(conn, model);
24
+ await this.RenderPKAndIndex(conn);
25
+ await this.RenderForeignKey(conn);
26
+ }
27
+ createTable(name) {
28
+ return { name, columns: [], foreignKeys: [], indexes: [] };
29
+ }
30
+ async RenderPKAndIndex(conn) {
31
+ const sSQL = `SELECT S.TABLE_NAME
32
+ , S.INDEX_NAME
33
+ , S.SEQ_IN_INDEX
34
+ , S.COLUMN_NAME
35
+ , S.NON_UNIQUE
36
+ , S.INDEX_TYPE
37
+ , TC.CONSTRAINT_TYPE
38
+ FROM information_schema.STATISTICS S
39
+ LEFT JOIN information_schema.TABLE_CONSTRAINTS TC
40
+ ON S.TABLE_SCHEMA = TC.TABLE_SCHEMA
41
+ AND S.TABLE_NAME = TC.TABLE_NAME
42
+ AND S.INDEX_NAME = TC.CONSTRAINT_NAME
43
+ WHERE S.TABLE_SCHEMA = DATABASE()
44
+ AND IFNULL(TC.CONSTRAINT_TYPE, '') != 'FOREIGN KEY'
45
+ ORDER BY S.TABLE_NAME
46
+ , S.INDEX_NAME
47
+ , S.SEQ_IN_INDEX`;
48
+ let curIndexName = '';
49
+ let table;
50
+ let index;
51
+ const rows = await mariaDbUtil_1.MariaDbUtil.query(conn, sSQL);
52
+ rows.forEach((row) => {
53
+ table = this.tableMap.get(row.TABLE_NAME);
54
+ if (row.CONSTRAINT_TYPE === 'PRIMARY KEY') {
55
+ // Primary Key
56
+ if (!table.primaryKey) {
57
+ table.primaryKey = { columns: '' };
58
+ }
59
+ if (!table.primaryKey.columns) {
60
+ table.primaryKey.columns = row.COLUMN_NAME;
61
+ }
62
+ else {
63
+ table.primaryKey.columns += `, ${row.COLUMN_NAME}`;
64
+ }
65
+ // table!.primaryKey!.cluster = true
66
+ }
67
+ else {
68
+ // Index
69
+ if (curIndexName !== row.INDEX_NAME) {
70
+ index = { name: row.INDEX_NAME, columns: '' };
71
+ table?.indexes.push(index);
72
+ // index.cluster = false
73
+ index.unique = row.NON_UNIQUE === 0;
74
+ curIndexName = row.INDEX_NAME;
75
+ }
76
+ index.type = row.INDEX_TYPE;
77
+ if (!index.columns) {
78
+ index.columns = row.COLUMN_NAME;
79
+ }
80
+ else {
81
+ index.columns += `, ${row.COLUMN_NAME}`;
82
+ }
83
+ }
84
+ });
85
+ }
86
+ async RenderForeignKey(conn) {
87
+ const sSQL = `SELECT R.TABLE_NAME
88
+ , R.CONSTRAINT_NAME
89
+ , R.UPDATE_RULE
90
+ , R.DELETE_RULE
91
+ , R.REFERENCED_TABLE_NAME
92
+ , K.COLUMN_NAME
93
+ , K.ORDINAL_POSITION
94
+ , K.POSITION_IN_UNIQUE_CONSTRAINT
95
+ , K.REFERENCED_COLUMN_NAME
96
+ FROM information_schema.REFERENTIAL_CONSTRAINTS R
97
+ JOIN information_schema.KEY_COLUMN_USAGE K
98
+ ON R.CONSTRAINT_SCHEMA = K.CONSTRAINT_SCHEMA
99
+ AND R.TABLE_NAME = K.TABLE_NAME
100
+ AND R.CONSTRAINT_NAME = K.CONSTRAINT_NAME
101
+ WHERE R.CONSTRAINT_SCHEMA = DATABASE()
102
+ ORDER BY R.TABLE_NAME
103
+ , R.CONSTRAINT_NAME
104
+ , K.ORDINAL_POSITION;`;
105
+ let curFKName = '';
106
+ let table;
107
+ let foreignKey;
108
+ const rows = await mariaDbUtil_1.MariaDbUtil.query(conn, sSQL);
109
+ rows.forEach((row) => {
110
+ if (curFKName !== row.CONSTRAINT_NAME) {
111
+ table = this.tableMap.get(row.TABLE_NAME);
112
+ foreignKey = { columns: '', refTable: row.REFERENCED_TABLE_NAME, refColumns: '' };
113
+ table.foreignKeys.push(foreignKey);
114
+ foreignKey.options = '';
115
+ if (row.DELETE_RULE !== 'RESTRICT') {
116
+ foreignKey.options = `ON DELETE ${row.DELETE_RULE}`;
117
+ }
118
+ if (row.UPDATE_RULE !== 'RESTRICT') {
119
+ if (foreignKey.options) {
120
+ foreignKey.options += ' ';
121
+ }
122
+ foreignKey.options += `ON UPDATE ${row.UPDATE_RULE}`;
123
+ }
124
+ curFKName = row.CONSTRAINT_NAME;
125
+ }
126
+ if (foreignKey.columns) {
127
+ foreignKey.columns += ', ';
128
+ }
129
+ foreignKey.columns += row.COLUMN_NAME;
130
+ if (foreignKey.refColumns) {
131
+ foreignKey.refColumns += ', ';
132
+ }
133
+ foreignKey.refColumns += row.REFERENCED_COLUMN_NAME;
134
+ });
135
+ }
136
+ async RenderColumn(conn, model) {
137
+ const sSQL = `SELECT C.TABLE_NAME
138
+ , C.COLUMN_NAME
139
+ , C.ORDINAL_POSITION
140
+ , C.COLUMN_TYPE
141
+ , C.COLUMN_DEFAULT
142
+ , C.EXTRA
143
+ , C.IS_NULLABLE
144
+ , C.COLUMN_COMMENT
145
+ , C.DATA_TYPE
146
+ , C.CHARACTER_MAXIMUM_LENGTH
147
+ , C.NUMERIC_PRECISION
148
+ , C.NUMERIC_SCALE
149
+ , C.CHARACTER_SET_NAME
150
+ , C.COLLATION_NAME
151
+ , T.TABLE_COMMENT
152
+ , CCSA.CHARACTER_SET_NAME TABLE_CHARACTER_SET_NAME
153
+ , T.TABLE_COLLATION
154
+ , T.AUTO_INCREMENT
155
+ FROM information_schema.COLUMNS C
156
+ JOIN information_schema.TABLES T
157
+ ON T.TABLE_SCHEMA = C.TABLE_SCHEMA
158
+ AND T.TABLE_NAME = C.TABLE_NAME
159
+ JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA
160
+ ON CCSA.COLLATION_NAME = T.TABLE_COLLATION
161
+ WHERE C.TABLE_SCHEMA = DATABASE()
162
+ ORDER BY C.TABLE_NAME
163
+ , C.ORDINAL_POSITION`;
164
+ let prevTableName = '';
165
+ let table;
166
+ const rows = await mariaDbUtil_1.MariaDbUtil.query(conn, sSQL);
167
+ rows.forEach((row) => {
168
+ if (prevTableName !== row.TABLE_NAME) {
169
+ // set Table
170
+ prevTableName = row.TABLE_NAME;
171
+ table = this.createTable(prevTableName);
172
+ table.comment = row.TABLE_COMMENT;
173
+ table.characterSet = row.TABLE_CHARACTER_SET_NAME;
174
+ table.collation = row.TABLE_COLLATION;
175
+ model.tables.push(table);
176
+ this.tableMap.set(prevTableName, table);
177
+ }
178
+ // set Column
179
+ const column = {
180
+ label: this.labelIt(row.COLUMN_NAME),
181
+ name: row.COLUMN_NAME,
182
+ type: this.GetColumnDataType(row.DATA_TYPE, row.COLUMN_TYPE, row.EXTRA, row.CHARACTER_SET_NAME === row.TABLE_CHARACTER_SET_NAME ? '' : row.CHARACTER_SET_NAME, row.COLLATION_NAME === row.TABLE_COLLATION ? '' : row.COLLATION_NAME),
183
+ nullable: row.IS_NULLABLE === 'YES',
184
+ };
185
+ const vDefault = row.COLUMN_DEFAULT;
186
+ if (!vDefault || vDefault === 'NULL') {
187
+ column.default = '';
188
+ }
189
+ else if (this.IsText(row.DATA_TYPE)) {
190
+ column.default = vDefault;
191
+ }
192
+ else {
193
+ column.default = vDefault;
194
+ }
195
+ column.comment = row.COLUMN_COMMENT;
196
+ table.columns.push(column);
197
+ });
198
+ }
199
+ GetColumnDataType(dataType, columnType, extra, charSet, collation) {
200
+ let retDataType = columnType;
201
+ if (MariaDbImportProvider.DATA_TYPES_WITH_LENGTH.indexOf(dataType) === -1) {
202
+ retDataType = columnType.replace(MariaDbImportProvider.REGEX_LEN_EXPR, '');
203
+ }
204
+ if (charSet) {
205
+ retDataType = `${retDataType} CHARACTER SET ${charSet}`;
206
+ }
207
+ if (collation) {
208
+ retDataType = `${retDataType} COLLATE ${collation}`;
209
+ }
210
+ if (extra) {
211
+ retDataType = `${retDataType} ${extra}`;
212
+ }
213
+ return retDataType;
214
+ }
215
+ IsText(dataType) {
216
+ let vIsText = false;
217
+ const lowerDataType = dataType.toLowerCase();
218
+ if (lowerDataType.indexOf('char') >= 0 || lowerDataType.indexOf('text') >= 0) {
219
+ vIsText = true;
220
+ }
221
+ return vIsText;
222
+ }
223
+ labelIt(columnName) {
224
+ let label = '';
225
+ let preIsLower = false;
226
+ for (let i = 0; i < columnName.length; i += 1) {
227
+ const current = columnName.charAt(i);
228
+ if (current === '_') {
229
+ label += ` `;
230
+ preIsLower = false;
231
+ // eslint-disable-next-line no-continue
232
+ continue;
233
+ }
234
+ if (current.toUpperCase() === current) {
235
+ if (preIsLower) {
236
+ label += ` ${current}`;
237
+ }
238
+ else {
239
+ label += current;
240
+ }
241
+ preIsLower = false;
242
+ }
243
+ else {
244
+ label += current;
245
+ preIsLower = true;
246
+ }
247
+ }
248
+ return label;
249
+ }
250
+ }
251
+ exports.MariaDbImportProvider = MariaDbImportProvider;
252
+ MariaDbImportProvider.DATA_TYPES_WITH_LENGTH = ['enum', 'char', 'varchar', 'decimal', 'binary', 'varbinary'];
253
+ MariaDbImportProvider.REGEX_LEN_EXPR = /\([\s,\d]*\)/g;
254
+ //# sourceMappingURL=mariaDbImportProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mariaDbImportProvider.js","sourceRoot":"","sources":["../../../src/dialects/mariadb/mariaDbImportProvider.ts"],"names":[],"mappings":";;;AASA,+DAA2D;AAC3D,+CAA2C;AAE3C,MAAa,qBAAsB,SAAQ,mCAAgB;IAO1D;QACC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,SAAoB;QACzC,MAAM,IAAI,GAAG,MAAM,yBAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAEvD,MAAM,KAAK,GAAY,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACrC,IAAI;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;SACxC;gBAAS;YACT,IAAI,CAAC,GAAG,EAAE,CAAA;SACV;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAgB,EAAE,KAAc;QAC9D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACpC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAEO,WAAW,CAAC,IAAY;QAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAC3D,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAgB;QAC9C,MAAM,IAAI,GAAW;;;;;;;;;;;;;;;;yBAgBE,CAAA;QAEvB,IAAI,YAAY,GAAG,EAAE,CAAA;QACrB,IAAI,KAA0B,CAAA;QAC9B,IAAI,KAAc,CAAA;QAClB,MAAM,IAAI,GAAG,MAAM,yBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YACzB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,GAAG,CAAC,eAAe,KAAK,aAAa,EAAE;gBAC1C,eAAe;gBACf,IAAI,CAAC,KAAM,CAAC,UAAU,EAAE;oBACvB,KAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;iBACnC;gBACD,IAAI,CAAC,KAAM,CAAC,UAAW,CAAC,OAAO,EAAE;oBAChC,KAAM,CAAC,UAAW,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW,CAAA;iBAC5C;qBAAM;oBACN,KAAM,CAAC,UAAW,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,WAAW,EAAE,CAAA;iBACpD;gBACD,oCAAoC;aACpC;iBAAM;gBACN,SAAS;gBACT,IAAI,YAAY,KAAK,GAAG,CAAC,UAAU,EAAE;oBACpC,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;oBAC7C,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAE1B,wBAAwB;oBACxB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,KAAK,CAAC,CAAA;oBAEnC,YAAY,GAAG,GAAG,CAAC,UAAU,CAAA;iBAC7B;gBAED,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAA;gBAE3B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBACnB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW,CAAA;iBAC/B;qBAAM;oBACN,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,WAAW,EAAE,CAAA;iBACvC;aACD;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAgB;QAC9C,MAAM,IAAI,GAAW;;;;;;;;;;;;;;;;;4BAiBK,CAAA;QAE1B,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,IAAI,KAA0B,CAAA;QAC9B,IAAI,UAAwB,CAAA;QAC5B,MAAM,IAAI,GAAG,MAAM,yBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YACzB,IAAI,SAAS,KAAK,GAAG,CAAC,eAAe,EAAE;gBACtC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACzC,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,qBAAqB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;gBACjF,KAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAEnC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAA;gBAEvB,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE;oBACnC,UAAU,CAAC,OAAO,GAAG,aAAa,GAAG,CAAC,WAAW,EAAE,CAAA;iBACnD;gBACD,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE;oBACnC,IAAI,UAAU,CAAC,OAAO,EAAE;wBACvB,UAAU,CAAC,OAAO,IAAI,GAAG,CAAA;qBACzB;oBACD,UAAU,CAAC,OAAO,IAAI,aAAa,GAAG,CAAC,WAAW,EAAE,CAAA;iBACpD;gBAED,SAAS,GAAG,GAAG,CAAC,eAAe,CAAA;aAC/B;YAED,IAAI,UAAU,CAAC,OAAO,EAAE;gBACvB,UAAU,CAAC,OAAO,IAAI,IAAI,CAAA;aAC1B;YACD,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,CAAA;YAErC,IAAI,UAAU,CAAC,UAAU,EAAE;gBAC1B,UAAU,CAAC,UAAU,IAAI,IAAI,CAAA;aAC7B;YACD,UAAU,CAAC,UAAU,IAAI,GAAG,CAAC,sBAAsB,CAAA;QACpD,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAgB,EAAE,KAAc;QAC1D,MAAM,IAAI,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;6BA0BM,CAAA;QAE3B,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,IAAI,KAAc,CAAA;QAClB,MAAM,IAAI,GAAG,MAAM,yBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YACzB,IAAI,aAAa,KAAK,GAAG,CAAC,UAAU,EAAE;gBACrC,aAAa;gBACb,aAAa,GAAG,GAAG,CAAC,UAAU,CAAA;gBAC9B,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;gBACvC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,aAAa,CAAA;gBACjC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,wBAAwB,CAAA;gBACjD,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,eAAe,CAAA;gBACrC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;aACvC;YAED,aAAa;YACb,MAAM,MAAM,GAAa;gBACxB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;gBACpC,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAC3B,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,EACrF,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CACpE;gBACD,QAAQ,EAAE,GAAG,CAAC,WAAW,KAAK,KAAK;aACnC,CAAA;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAA;YACnC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE;gBACrC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;aACnB;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBACtC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;aACzB;iBAAM;gBACN,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;aACzB;YAED,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,cAAc,CAAA;YACnC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,iBAAiB,CACxB,QAAgB,EAChB,UAAkB,EAClB,KAAa,EACb,OAAe,EACf,SAAiB;QAEjB,IAAI,WAAW,GAAW,UAAU,CAAA;QACpC,IAAI,qBAAqB,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YAC1E,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;SAC1E;QACD,IAAI,OAAO,EAAE;YACZ,WAAW,GAAG,GAAG,WAAW,kBAAkB,OAAO,EAAE,CAAA;SACvD;QACD,IAAI,SAAS,EAAE;YACd,WAAW,GAAG,GAAG,WAAW,YAAY,SAAS,EAAE,CAAA;SACnD;QACD,IAAI,KAAK,EAAE;YACV,WAAW,GAAG,GAAG,WAAW,IAAI,KAAK,EAAE,CAAA;SACvC;QACD,OAAO,WAAW,CAAA;IACnB,CAAC;IAEO,MAAM,CAAC,QAAgB;QAC9B,IAAI,OAAO,GAAY,KAAK,CAAA;QAE5B,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC5C,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC7E,OAAO,GAAG,IAAI,CAAA;SACd;QACD,OAAO,OAAO,CAAA;IACf,CAAC;IAEO,OAAO,CAAC,UAAkB;QACjC,IAAI,KAAK,GAAW,EAAE,CAAA;QACtB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,OAAO,KAAK,GAAG,EAAE;gBACpB,KAAK,IAAI,GAAG,CAAA;gBACZ,UAAU,GAAG,KAAK,CAAA;gBAClB,uCAAuC;gBACvC,SAAQ;aACR;YAED,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;gBACtC,IAAI,UAAU,EAAE;oBACf,KAAK,IAAI,IAAI,OAAO,EAAE,CAAA;iBACtB;qBAAM;oBACN,KAAK,IAAI,OAAO,CAAA;iBAChB;gBACD,UAAU,GAAG,KAAK,CAAA;aAClB;iBAAM;gBACN,KAAK,IAAI,OAAO,CAAA;gBAChB,UAAU,GAAG,IAAI,CAAA;aACjB;SACD;QAED,OAAO,KAAK,CAAA;IACb,CAAC;;AA1RF,sDA2RC;AAxRO,4CAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;AAEtF,oCAAc,GAAG,eAAe,CAAA"}
@@ -1,18 +1,18 @@
1
- import { DbModel } from '../../services/dbModel';
1
+ import { DbModel } from '../../models/dbModel';
2
2
  import { DbProvider } from '../core/dbProvider';
3
3
  export declare class MariaDbProvider extends DbProvider {
4
- private outputSecondChannel;
5
- private spDropFkName;
6
4
  getCreateTableIfNotExistsSql(model: DbModel): string;
7
5
  getCreateTableSql(model: DbModel, withComment: boolean): string;
8
6
  getDropTableSql(model: DbModel): string;
9
7
  getDropThenCreateTableSql(model: DbModel, withComment: boolean): string;
10
- private getSqlCreateTableIfNotExistsSingle;
11
- private getSqlCreateTableSingle;
12
- private getSqlDropTableSingle;
13
- private getSqlPostRemoveFK;
14
- private getSqlPreRemoveFK;
15
- private getSqlRemoveFkSingle;
16
- private outputCreateTableSQL;
17
- private outputDropTableSQL;
8
+ getUpgradeSql(fromModel: DbModel, model: DbModel, withComment: boolean): string;
9
+ static getEngine(): any;
10
+ /**
11
+ * get the different between models
12
+ * @param fromModel the earlier version model
13
+ * @param toModel the current version model
14
+ * @returns
15
+ */
16
+ private getDifferent;
17
+ private getOrCreateDiffTable;
18
18
  }