db-modeling-markdown 1.0.6 → 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 (114) hide show
  1. package/CHANGELOG.md +19 -4
  2. package/CONTRIBUTING.md +27 -6
  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 +2 -3
  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 +129 -214
  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 +4 -8
  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 -233
  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 +14 -6
  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 +4 -1
  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 +1 -2
  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 +32 -40
  113. package/dist/services/databaseTypes.js.map +0 -1
  114. package/dist/services/dbModel.d.ts +0 -135
@@ -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;
@@ -3,8 +3,8 @@
3
3
  /* eslint-disable prefer-template */
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.Db2Provider = void 0;
6
- const dbProvider_1 = require("../core/dbProvider");
7
6
  const sqlHelper_1 = require("../../lib/utils/sqlHelper");
7
+ const dbProvider_1 = require("../core/dbProvider");
8
8
  class Db2Provider extends dbProvider_1.DbProvider {
9
9
  constructor() {
10
10
  super(...arguments);
@@ -71,8 +71,7 @@ class Db2Provider extends dbProvider_1.DbProvider {
71
71
  sqlPrimaryKey = '';
72
72
  if (table.primaryKey && table.primaryKey.columns) {
73
73
  sqlPrimaryKey =
74
- dbProvider_1.line +
75
- ` ,CONSTRAINT ${this.renderPkName(table)} PRIMARY KEY (${table.primaryKey.columns})`;
74
+ dbProvider_1.line + ` ,CONSTRAINT ${this.renderPkName(table)} PRIMARY KEY (${table.primaryKey.columns})`;
76
75
  }
77
76
  // Unique Indexes SQL
78
77
  let sqlUniqueIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"db2Provider.js","sourceRoot":"","sources":["../../../src/dialects/db2/db2Provider.ts"],"names":[],"mappings":"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"}
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":"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"}
@@ -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
  }