db-modeling-markdown 2.0.2 → 2.1.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 (113) hide show
  1. package/README.md +168 -164
  2. package/dist/dialects/core/dbImportProvider.d.ts +5 -5
  3. package/dist/dialects/core/dbImportProvider.js +6 -6
  4. package/dist/dialects/core/dbProvider.d.ts +34 -34
  5. package/dist/dialects/core/dbProvider.js +119 -119
  6. package/dist/dialects/core/dbProvider.js.map +1 -1
  7. package/dist/dialects/core/dbUtils.d.ts +35 -35
  8. package/dist/dialects/core/dbUtils.js +157 -158
  9. package/dist/dialects/core/dbUtils.js.map +1 -1
  10. package/dist/dialects/core/providerFactory.d.ts +7 -7
  11. package/dist/dialects/core/providerFactory.js +63 -63
  12. package/dist/dialects/core/providerFactory.js.map +1 -1
  13. package/dist/dialects/db2/db2Provider.d.ts +19 -19
  14. package/dist/dialects/db2/db2Provider.js +185 -186
  15. package/dist/dialects/db2/db2Provider.js.map +1 -1
  16. package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -19
  17. package/dist/dialects/mariadb/mariaDbImportProvider.js +260 -260
  18. package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -1
  19. package/dist/dialects/mariadb/mariaDbProvider.d.ts +18 -18
  20. package/dist/dialects/mariadb/mariaDbProvider.js +152 -153
  21. package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
  22. package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -6
  23. package/dist/dialects/mariadb/mariaDbUtil.js +22 -22
  24. package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -1
  25. package/dist/dialects/mssql/msSqlProvider.d.ts +21 -21
  26. package/dist/dialects/mssql/msSqlProvider.js +264 -265
  27. package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
  28. package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -3
  29. package/dist/dialects/mysql/mySqlImportProvider.js +7 -7
  30. package/dist/dialects/mysql/mySqlProvider.d.ts +3 -3
  31. package/dist/dialects/mysql/mySqlProvider.js +7 -7
  32. package/dist/dialects/oracle/oracleProvider.d.ts +35 -35
  33. package/dist/dialects/oracle/oracleProvider.js +327 -327
  34. package/dist/dialects/oracle/oracleProvider.js.map +1 -1
  35. package/dist/dialects/postgresql/postgreSqlProvider.d.ts +19 -19
  36. package/dist/dialects/postgresql/postgreSqlProvider.js +172 -173
  37. package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
  38. package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +23 -23
  39. package/dist/dialects/sqlite/sqliteSqlProvider.js +147 -148
  40. package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
  41. package/dist/index.d.ts +10 -10
  42. package/dist/index.js +9 -9
  43. package/dist/lib/code-flow/codeFlow.d.ts +37 -37
  44. package/dist/lib/code-flow/codeFlow.js +61 -61
  45. package/dist/lib/markdown-object/markdownModel.d.ts +14 -14
  46. package/dist/lib/markdown-object/markdownModel.js +12 -12
  47. package/dist/lib/markdown-object/markdownModel.js.map +1 -1
  48. package/dist/lib/markdown-object/markdownReader.d.ts +39 -39
  49. package/dist/lib/markdown-object/markdownReader.js +261 -261
  50. package/dist/lib/markdown-object/markdownReader.js.map +1 -1
  51. package/dist/lib/markdown-object/markdownWriter.d.ts +36 -36
  52. package/dist/lib/markdown-object/markdownWriter.js +224 -224
  53. package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
  54. package/dist/lib/markdown-object/readerContext.d.ts +12 -12
  55. package/dist/lib/markdown-object/readerContext.js +48 -48
  56. package/dist/lib/markdown-object/readerContext.js.map +1 -1
  57. package/dist/lib/utils/fileHelper.d.ts +14 -15
  58. package/dist/lib/utils/fileHelper.js +58 -57
  59. package/dist/lib/utils/fileHelper.js.map +1 -1
  60. package/dist/lib/utils/logger.d.ts +9 -9
  61. package/dist/lib/utils/logger.js +60 -60
  62. package/dist/lib/utils/logger.js.map +1 -1
  63. package/dist/lib/utils/markdownParser.d.ts +22 -22
  64. package/dist/lib/utils/markdownParser.js +99 -95
  65. package/dist/lib/utils/markdownParser.js.map +1 -1
  66. package/dist/lib/utils/sqlHelper.d.ts +3 -3
  67. package/dist/lib/utils/sqlHelper.js +23 -23
  68. package/dist/lib/utils/sqlHelper.js.map +1 -1
  69. package/dist/lib/utils/systemHelper.d.ts +2 -2
  70. package/dist/lib/utils/systemHelper.js +6 -6
  71. package/dist/lib/utils/textFileReader.d.ts +25 -25
  72. package/dist/lib/utils/textFileReader.js +57 -57
  73. package/dist/lib/utils/textFileReader.js.map +1 -1
  74. package/dist/lib/utils/textHelper.d.ts +21 -21
  75. package/dist/lib/utils/textHelper.js +75 -71
  76. package/dist/lib/utils/textHelper.js.map +1 -1
  77. package/dist/models/databaseTypes.d.ts +33 -33
  78. package/dist/models/databaseTypes.js +37 -37
  79. package/dist/models/databaseTypes.js.map +1 -1
  80. package/dist/models/dbColumn.d.ts +43 -43
  81. package/dist/models/dbColumn.js +2 -2
  82. package/dist/models/dbDiffModel.d.ts +43 -43
  83. package/dist/models/dbDiffModel.js +2 -2
  84. package/dist/models/dbForeignKey.d.ts +33 -33
  85. package/dist/models/dbForeignKey.js +2 -2
  86. package/dist/models/dbIndex.d.ts +28 -28
  87. package/dist/models/dbIndex.js +2 -2
  88. package/dist/models/dbIndexType.d.ts +8 -8
  89. package/dist/models/dbIndexType.js +12 -12
  90. package/dist/models/dbIndexType.js.map +1 -1
  91. package/dist/models/dbModel.d.ts +10 -10
  92. package/dist/models/dbModel.js +2 -2
  93. package/dist/models/dbPrimaryKey.d.ts +16 -16
  94. package/dist/models/dbPrimaryKey.js +2 -2
  95. package/dist/models/dbTable.d.ts +49 -49
  96. package/dist/models/dbTable.js +2 -2
  97. package/dist/models/dbTableMarkdown.d.ts +35 -35
  98. package/dist/models/dbTableMarkdown.js +2 -2
  99. package/dist/resources/mariadb/procAppUpgradeDB.sql +164 -164
  100. package/dist/resources/mariadb/sql-create-table-fk.njk +10 -10
  101. package/dist/resources/mariadb/sql-create-table.njk +11 -11
  102. package/dist/resources/mariadb/sql-create-tables.njk +8 -8
  103. package/dist/resources/mariadb/sql-upgrade-new-table.njk +14 -14
  104. package/dist/services/dbOptions.d.ts +35 -35
  105. package/dist/services/dbOptions.js +17 -17
  106. package/dist/services/dbmOptions.d.ts +28 -28
  107. package/dist/services/dbmOptions.js +34 -34
  108. package/dist/services/dbmService.d.ts +87 -87
  109. package/dist/services/dbmService.js +244 -244
  110. package/dist/services/dbmService.js.map +1 -1
  111. package/package.json +28 -34
  112. package/CHANGELOG.md +0 -81
  113. package/CONTRIBUTING.md +0 -85
@@ -1,13 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DbIndexType = void 0;
4
- /**
5
- * Describe the table index type
6
- */
7
- var DbIndexType;
8
- (function (DbIndexType) {
9
- DbIndexType["FullText"] = "FullText";
10
- DbIndexType["Index"] = "Index";
11
- DbIndexType["PrimaryKey"] = "Primary Key";
12
- })(DbIndexType = exports.DbIndexType || (exports.DbIndexType = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DbIndexType = void 0;
4
+ /**
5
+ * Describe the table index type
6
+ */
7
+ var DbIndexType;
8
+ (function (DbIndexType) {
9
+ DbIndexType["FullText"] = "FullText";
10
+ DbIndexType["Index"] = "Index";
11
+ DbIndexType["PrimaryKey"] = "Primary Key";
12
+ })(DbIndexType || (exports.DbIndexType = DbIndexType = {}));
13
13
  //# sourceMappingURL=dbIndexType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dbIndexType.js","sourceRoot":"","sources":["../../src/models/dbIndexType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,oCAAqB,CAAA;IACrB,8BAAe,CAAA;IACf,yCAA0B,CAAA;AAC3B,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB"}
1
+ {"version":3,"file":"dbIndexType.js","sourceRoot":"","sources":["../../src/models/dbIndexType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,oCAAqB,CAAA;IACrB,8BAAe,CAAA;IACf,yCAA0B,CAAA;AAC3B,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
@@ -1,10 +1,10 @@
1
- import { DbTable } from './dbTable';
2
- /**
3
- * Describe a database model
4
- */
5
- export interface DbModel {
6
- /**
7
- * The model tables
8
- */
9
- tables: DbTable[];
10
- }
1
+ import { DbTable } from './dbTable';
2
+ /**
3
+ * Describe a database model
4
+ */
5
+ export interface DbModel {
6
+ /**
7
+ * The model tables
8
+ */
9
+ tables: DbTable[];
10
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=dbModel.js.map
@@ -1,16 +1,16 @@
1
- /**
2
- * Describe table primary key
3
- */
4
- export interface DbPrimaryKey {
5
- /**
6
- * If the primary key is clusterred
7
- */
8
- cluster?: boolean;
9
- /**
10
- * The primary key columns.
11
- *
12
- * Use comma `,` to split multiple columns.
13
- * E.g. `column, column2`
14
- */
15
- columns: string;
16
- }
1
+ /**
2
+ * Describe table primary key
3
+ */
4
+ export interface DbPrimaryKey {
5
+ /**
6
+ * If the primary key is clusterred
7
+ */
8
+ cluster?: boolean;
9
+ /**
10
+ * The primary key columns.
11
+ *
12
+ * Use comma `,` to split multiple columns.
13
+ * E.g. `column, column2`
14
+ */
15
+ columns: string;
16
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=dbPrimaryKey.js.map
@@ -1,49 +1,49 @@
1
- import { DbColumn } from './dbColumn';
2
- import { DbForeignKey } from './dbForeignKey';
3
- import { DbIndex } from './dbIndex';
4
- import { DbPrimaryKey } from './dbPrimaryKey';
5
- /**
6
- * Describe a table
7
- */
8
- export interface DbTable {
9
- /**
10
- * auto increment start
11
- */
12
- autoIncrement?: number;
13
- /**
14
- * The character set of the text column
15
- */
16
- characterSet?: string;
17
- /**
18
- * the collation of the text column
19
- */
20
- collation?: string;
21
- /**
22
- * The table columns
23
- */
24
- columns: DbColumn[];
25
- /**
26
- * The table comment
27
- */
28
- comment?: string;
29
- /**
30
- * DB Engin
31
- */
32
- engine?: string;
33
- /**
34
- * The table foreign keys
35
- */
36
- foreignKeys: DbForeignKey[];
37
- /**
38
- * The table indexes
39
- */
40
- indexes: DbIndex[];
41
- /**
42
- * The table name
43
- */
44
- name: string;
45
- /**
46
- * The table primary key
47
- */
48
- primaryKey?: DbPrimaryKey;
49
- }
1
+ import { DbColumn } from './dbColumn';
2
+ import { DbForeignKey } from './dbForeignKey';
3
+ import { DbIndex } from './dbIndex';
4
+ import { DbPrimaryKey } from './dbPrimaryKey';
5
+ /**
6
+ * Describe a table
7
+ */
8
+ export interface DbTable {
9
+ /**
10
+ * auto increment start
11
+ */
12
+ autoIncrement?: number;
13
+ /**
14
+ * The character set of the text column
15
+ */
16
+ characterSet?: string;
17
+ /**
18
+ * the collation of the text column
19
+ */
20
+ collation?: string;
21
+ /**
22
+ * The table columns
23
+ */
24
+ columns: DbColumn[];
25
+ /**
26
+ * The table comment
27
+ */
28
+ comment?: string;
29
+ /**
30
+ * DB Engin
31
+ */
32
+ engine?: string;
33
+ /**
34
+ * The table foreign keys
35
+ */
36
+ foreignKeys: DbForeignKey[];
37
+ /**
38
+ * The table indexes
39
+ */
40
+ indexes: DbIndex[];
41
+ /**
42
+ * The table name
43
+ */
44
+ name: string;
45
+ /**
46
+ * The table primary key
47
+ */
48
+ primaryKey?: DbPrimaryKey;
49
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=dbTable.js.map
@@ -1,35 +1,35 @@
1
- import { DbColumn } from './dbColumn';
2
- import { DbForeignKey } from './dbForeignKey';
3
- import { DbIndex } from './dbIndex';
4
- import { DbPrimaryKey } from './dbPrimaryKey';
5
- /**
6
- * Describe a table
7
- */
8
- export interface DbTableMarkdown {
9
- /**
10
- * The table columns
11
- */
12
- columns: DbColumn[];
13
- /**
14
- * The table foreign keys
15
- */
16
- foreignKeys: DbForeignKey[];
17
- /**
18
- * The table indexes
19
- */
20
- indexes: DbIndex[];
21
- /**
22
- * The table primary key
23
- */
24
- primaryKey?: DbPrimaryKey[];
25
- /**
26
- * The table header
27
- */
28
- table: {
29
- characterSet?: string;
30
- collation?: string;
31
- comment?: string;
32
- engine?: string;
33
- name: string;
34
- }[];
35
- }
1
+ import { DbColumn } from './dbColumn';
2
+ import { DbForeignKey } from './dbForeignKey';
3
+ import { DbIndex } from './dbIndex';
4
+ import { DbPrimaryKey } from './dbPrimaryKey';
5
+ /**
6
+ * Describe a table
7
+ */
8
+ export interface DbTableMarkdown {
9
+ /**
10
+ * The table columns
11
+ */
12
+ columns: DbColumn[];
13
+ /**
14
+ * The table foreign keys
15
+ */
16
+ foreignKeys: DbForeignKey[];
17
+ /**
18
+ * The table indexes
19
+ */
20
+ indexes: DbIndex[];
21
+ /**
22
+ * The table primary key
23
+ */
24
+ primaryKey?: DbPrimaryKey[];
25
+ /**
26
+ * The table header
27
+ */
28
+ table: {
29
+ characterSet?: string;
30
+ collation?: string;
31
+ comment?: string;
32
+ engine?: string;
33
+ name: string;
34
+ }[];
35
+ }
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=dbTableMarkdown.js.map
@@ -1,164 +1,164 @@
1
- drop procedure if exists procAppUpgradeDB;
2
- drop function if exists funcAppTableExists;
3
- drop function if exists funcAppColumnExists;
4
- drop function if exists funcAppPrimaryKeyExists;
5
- drop function if exists funcAppIndexExists;
6
- drop function if exists funcAppForeignKeyExists;
7
-
8
- DELIMITER $$
9
-
10
- create function funcAppTableExists(p_table text)
11
- returns int
12
- begin
13
- declare v_count int;
14
-
15
- select
16
- count(*) into v_count
17
- from
18
- information_schema.tables t
19
- where
20
- t.table_name = p_table
21
- and t.table_schema = database();
22
-
23
- return v_count;
24
- end;
25
- $$
26
-
27
- create function funcAppColumnExists(p_table text, p_column text)
28
- returns int
29
- begin
30
- declare v_count int;
31
-
32
- select
33
- count(*) into v_count
34
- from
35
- information_schema.columns c
36
- where
37
- c.table_schema = database()
38
- and c.table_name = p_table
39
- and c.column_name = p_column;
40
-
41
- return v_count;
42
- end;
43
- $$
44
-
45
- create function funcAppPrimaryKeyExists(p_table text, p_columns text)
46
- returns int
47
- begin
48
- declare v_count int;
49
-
50
- select
51
- count(*) into v_count
52
- from
53
- (
54
- select
55
- s.table_name,
56
- s.index_name,
57
- group_concat(s.column_name) columns
58
- from
59
- information_schema.statistics s
60
- join information_schema.table_constraints tc
61
- on
62
- s.table_schema = tc.table_schema
63
- and s.table_name = tc.table_name
64
- and s.index_name = tc.constraint_name
65
- where
66
- s.table_schema = database()
67
- and s.table_name = p_table
68
- and tc.constraint_type = 'PRIMARY KEY'
69
- group by s.table_name, s.index_name
70
- ) a
71
- where
72
- a.columns = p_columns;
73
-
74
- return v_count;
75
- end;
76
- $$
77
-
78
- create function funcAppIndexExists(p_table text, p_columns text)
79
- returns int
80
- begin
81
- declare v_count int;
82
-
83
- select
84
- count(*) into v_count
85
- from
86
- (
87
- select
88
- s.table_name,
89
- s.index_name,
90
- group_concat(s.column_name) columns
91
- from
92
- information_schema.statistics s
93
- left join information_schema.table_constraints tc
94
- on
95
- s.table_schema = tc.table_schema
96
- and s.table_name = tc.table_name
97
- and s.index_name = tc.constraint_name
98
- where
99
- s.table_schema = database()
100
- and s.table_name = p_table
101
- and tc.constraint_type is null
102
- group by
103
- s.table_name, s.index_name
104
- ) a
105
- where
106
- a.columns = p_columns;
107
-
108
- return v_count;
109
- end;
110
- $$
111
-
112
- create function funcAppForeignKeyExists(p_table text, p_columns text, p_reftable text, p_refcolumns text)
113
- returns int
114
- begin
115
- declare v_count int;
116
-
117
- select
118
- count(*) into v_count
119
- from
120
- (
121
- select
122
- k.table_name ,
123
- k.referenced_table_name ,
124
- group_concat(k.column_name) columns,
125
- group_concat(k.referenced_column_name) referenced_columns
126
- from
127
- information_schema.referential_constraints r
128
- join information_schema.key_column_usage k
129
- on
130
- r.constraint_schema = k.constraint_schema
131
- and r.table_name = k.table_name
132
- and r.constraint_name = k.constraint_name
133
- where
134
- k.constraint_schema = database()
135
- and k.table_name = p_table
136
- and k.referenced_table_name = p_reftable
137
- ) a
138
- where
139
- a.columns = p_columns
140
- and a.referenced_columns = p_refcolumns;
141
-
142
- return v_count;
143
- end;
144
- $$
145
-
146
- create procedure procAppUpgradeDB()
147
- begin
148
- drop table if exists `temp_app_upgrade_log`;
149
- create temporary table `temp_app_upgrade_log` (
150
- `timestamp` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
151
- `message` varchar(2048)
152
- );
153
-
154
- -- $body
155
-
156
- select * from `temp_app_upgrade_log`;
157
- drop table `temp_app_upgrade_log`;
158
- end;
159
- $$
160
-
161
- DELIMITER ;
162
-
163
-
164
- call procAppUpgradeDB();
1
+ drop procedure if exists procAppUpgradeDB;
2
+ drop function if exists funcAppTableExists;
3
+ drop function if exists funcAppColumnExists;
4
+ drop function if exists funcAppPrimaryKeyExists;
5
+ drop function if exists funcAppIndexExists;
6
+ drop function if exists funcAppForeignKeyExists;
7
+
8
+ DELIMITER $$
9
+
10
+ create function funcAppTableExists(p_table text)
11
+ returns int
12
+ begin
13
+ declare v_count int;
14
+
15
+ select
16
+ count(*) into v_count
17
+ from
18
+ information_schema.tables t
19
+ where
20
+ t.table_name = p_table
21
+ and t.table_schema = database();
22
+
23
+ return v_count;
24
+ end;
25
+ $$
26
+
27
+ create function funcAppColumnExists(p_table text, p_column text)
28
+ returns int
29
+ begin
30
+ declare v_count int;
31
+
32
+ select
33
+ count(*) into v_count
34
+ from
35
+ information_schema.columns c
36
+ where
37
+ c.table_schema = database()
38
+ and c.table_name = p_table
39
+ and c.column_name = p_column;
40
+
41
+ return v_count;
42
+ end;
43
+ $$
44
+
45
+ create function funcAppPrimaryKeyExists(p_table text, p_columns text)
46
+ returns int
47
+ begin
48
+ declare v_count int;
49
+
50
+ select
51
+ count(*) into v_count
52
+ from
53
+ (
54
+ select
55
+ s.table_name,
56
+ s.index_name,
57
+ group_concat(s.column_name) columns
58
+ from
59
+ information_schema.statistics s
60
+ join information_schema.table_constraints tc
61
+ on
62
+ s.table_schema = tc.table_schema
63
+ and s.table_name = tc.table_name
64
+ and s.index_name = tc.constraint_name
65
+ where
66
+ s.table_schema = database()
67
+ and s.table_name = p_table
68
+ and tc.constraint_type = 'PRIMARY KEY'
69
+ group by s.table_name, s.index_name
70
+ ) a
71
+ where
72
+ a.columns = p_columns;
73
+
74
+ return v_count;
75
+ end;
76
+ $$
77
+
78
+ create function funcAppIndexExists(p_table text, p_columns text)
79
+ returns int
80
+ begin
81
+ declare v_count int;
82
+
83
+ select
84
+ count(*) into v_count
85
+ from
86
+ (
87
+ select
88
+ s.table_name,
89
+ s.index_name,
90
+ group_concat(s.column_name) columns
91
+ from
92
+ information_schema.statistics s
93
+ left join information_schema.table_constraints tc
94
+ on
95
+ s.table_schema = tc.table_schema
96
+ and s.table_name = tc.table_name
97
+ and s.index_name = tc.constraint_name
98
+ where
99
+ s.table_schema = database()
100
+ and s.table_name = p_table
101
+ and tc.constraint_type is null
102
+ group by
103
+ s.table_name, s.index_name
104
+ ) a
105
+ where
106
+ a.columns = p_columns;
107
+
108
+ return v_count;
109
+ end;
110
+ $$
111
+
112
+ create function funcAppForeignKeyExists(p_table text, p_columns text, p_reftable text, p_refcolumns text)
113
+ returns int
114
+ begin
115
+ declare v_count int;
116
+
117
+ select
118
+ count(*) into v_count
119
+ from
120
+ (
121
+ select
122
+ k.table_name ,
123
+ k.referenced_table_name ,
124
+ group_concat(k.column_name) columns,
125
+ group_concat(k.referenced_column_name) referenced_columns
126
+ from
127
+ information_schema.referential_constraints r
128
+ join information_schema.key_column_usage k
129
+ on
130
+ r.constraint_schema = k.constraint_schema
131
+ and r.table_name = k.table_name
132
+ and r.constraint_name = k.constraint_name
133
+ where
134
+ k.constraint_schema = database()
135
+ and k.table_name = p_table
136
+ and k.referenced_table_name = p_reftable
137
+ ) a
138
+ where
139
+ a.columns = p_columns
140
+ and a.referenced_columns = p_refcolumns;
141
+
142
+ return v_count;
143
+ end;
144
+ $$
145
+
146
+ create procedure procAppUpgradeDB()
147
+ begin
148
+ drop table if exists `temp_app_upgrade_log`;
149
+ create temporary table `temp_app_upgrade_log` (
150
+ `timestamp` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
151
+ `message` varchar(2048)
152
+ );
153
+
154
+ -- $body
155
+
156
+ select * from `temp_app_upgrade_log`;
157
+ drop table `temp_app_upgrade_log`;
158
+ end;
159
+ $$
160
+
161
+ DELIMITER ;
162
+
163
+
164
+ call procAppUpgradeDB();
@@ -1,10 +1,10 @@
1
- {% if table.foreignKeys.length > 0 %}
2
- -- Foreign keys for table '{{ table.name }}'
3
- {% for foreignKey in table.foreignKeys %}
4
- ALTER TABLE `{{ table.name }}`
5
- ADD CONSTRAINT {{ foreignKey.name }}
6
- FOREIGN KEY ({{ foreignKey.columns.replace(r/,\s*/g, ', ') }})
7
- REFERENCES {{ foreignKey.refTable }}({{ foreignKey.refColumns.replace(r/\s*/g, '').replaceAll(',', ', ') }}){{ " " + foreignKey.options if foreignKey.options }};
8
- {% endfor %}
9
-
10
- {% endif %}
1
+ {% if table.foreignKeys.length > 0 %}
2
+ -- Foreign keys for table '{{ table.name }}'
3
+ {% for foreignKey in table.foreignKeys %}
4
+ ALTER TABLE `{{ table.name }}`
5
+ ADD CONSTRAINT {{ foreignKey.name }}
6
+ FOREIGN KEY ({{ foreignKey.columns.replace(r/,\s*/g, ', ') }})
7
+ REFERENCES {{ foreignKey.refTable }}({{ foreignKey.refColumns.replace(r/\s*/g, '').replaceAll(',', ', ') }}){{ " " + foreignKey.options if foreignKey.options }};
8
+ {% endfor %}
9
+
10
+ {% endif %}
@@ -1,12 +1,12 @@
1
- -- Create table '{{ table.name }}'
2
- CREATE TABLE{{ " IF NOT EXISTS" if ifNotExists }} `{{ table.name }}` (
3
- {% for column in table.columns %}
4
- {{ " " if loop.index == 1 else ", " }}`{{ column.name }}` {{ column.type }}{{ " NOT NULL" if not column.nullable }}{{ " DEFAULT " + column.default if column.default }}{{ " COMMENT " + (column | getComment | toSQL) if withComment and (column | getComment) }}
5
- {% endfor %}
6
- {% if table.primaryKey %}
7
- , PRIMARY KEY ({{ table.primaryKey.columns }})
8
- {% endif %}
9
- {% for index in table.indexes %}
10
- , {{ "UNIQUE " if index.unique }}KEY `{{ index.name }}` ({{ index.columns }})
11
- {% endfor %}
1
+ -- Create table '{{ table.name }}'
2
+ CREATE TABLE{{ " IF NOT EXISTS" if ifNotExists }} `{{ table.name }}` (
3
+ {% for column in table.columns %}
4
+ {{ " " if loop.index == 1 else ", " }}`{{ column.name }}` {{ column.type }}{{ " NOT NULL" if not column.nullable }}{{ " DEFAULT " + column.default if column.default }}{{ " COMMENT " + (column | getComment | toSQL) if withComment and (column | getComment) }}
5
+ {% endfor %}
6
+ {% if table.primaryKey %}
7
+ , PRIMARY KEY ({{ table.primaryKey.columns }})
8
+ {% endif %}
9
+ {% for index in table.indexes %}
10
+ , {{ "UNIQUE " if index.unique }}KEY `{{ index.name }}` ({{ index.columns }})
11
+ {% endfor %}
12
12
  ){{ " ENGINE=" + table.engine if table.engine }}{{ " AUTO_INCREMENT=" + table.autoIncrement if table.autoIncrement and table.autoIncrement !== 1 }}{{ " DEFAULT CHARSET=" + table.characterSet if table.characterSet }}{{ " COMMENT=" + (table.comment | toSQL) if withComment and table.comment }};