@biorate/migrations 1.2.2 → 1.4.4
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.
- package/.nyc_output/ec155b37-e583-43e9-ab27-b2091d8064ad.json +1 -0
- package/.nyc_output/processinfo/ec155b37-e583-43e9-ab27-b2091d8064ad.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +41 -0
- package/coverage/lcov-report/index.html +15 -15
- package/coverage/lcov-report/src/default.config.ts.html +22 -4
- package/coverage/lcov-report/src/index.html +7 -7
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/src/root.ts.html +11 -5
- package/coverage/lcov-report/src/types/index.html +51 -21
- package/coverage/lcov-report/src/types/index.ts.html +10 -4
- package/coverage/lcov-report/src/types/migration.ts.html +119 -14
- package/coverage/lcov-report/src/types/minio.ts.html +196 -0
- package/coverage/lcov-report/src/types/mongodb.ts.html +187 -0
- package/coverage/lcov-report/src/types/sequelize.ts.html +52 -49
- package/coverage/lcov.info +135 -62
- package/dist/src/default.config.js +6 -0
- package/dist/src/default.config.js.map +1 -1
- package/dist/src/root.js +8 -0
- package/dist/src/root.js.map +1 -1
- package/dist/src/types/index.js +2 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/migration.js +23 -1
- package/dist/src/types/migration.js.map +1 -1
- package/dist/src/types/minio.js +39 -0
- package/dist/src/types/minio.js.map +1 -0
- package/dist/src/types/mongodb.js +34 -0
- package/dist/src/types/mongodb.js.map +1 -0
- package/dist/src/types/sequelize.js +12 -24
- package/dist/src/types/sequelize.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -7
- package/src/default.config.ts +6 -0
- package/src/root.ts +3 -1
- package/src/types/index.ts +2 -0
- package/src/types/migration.ts +42 -1
- package/src/types/minio.ts +37 -0
- package/src/types/mongodb.ts +34 -0
- package/src/types/sequelize.ts +34 -33
- package/.nyc_output/7097d81f-0b99-4b17-b41e-6165f1d1fdea.json +0 -1
- package/.nyc_output/processinfo/7097d81f-0b99-4b17-b41e-6165f1d1fdea.json +0 -1
@@ -0,0 +1,196 @@
|
|
1
|
+
|
2
|
+
<!doctype html>
|
3
|
+
<html lang="en">
|
4
|
+
|
5
|
+
<head>
|
6
|
+
<title>Code coverage report for src/types/minio.ts</title>
|
7
|
+
<meta charset="utf-8" />
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
12
|
+
<style type='text/css'>
|
13
|
+
.coverage-summary .sorter {
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
15
|
+
}
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<div class='wrapper'>
|
21
|
+
<div class='pad1'>
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/types</a> minio.ts</h1>
|
23
|
+
<div class='clearfix'>
|
24
|
+
|
25
|
+
<div class='fl pad1y space-right2'>
|
26
|
+
<span class="strong">78.57% </span>
|
27
|
+
<span class="quiet">Statements</span>
|
28
|
+
<span class='fraction'>11/14</span>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
|
32
|
+
<div class='fl pad1y space-right2'>
|
33
|
+
<span class="strong">100% </span>
|
34
|
+
<span class="quiet">Branches</span>
|
35
|
+
<span class='fraction'>0/0</span>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
|
39
|
+
<div class='fl pad1y space-right2'>
|
40
|
+
<span class="strong">100% </span>
|
41
|
+
<span class="quiet">Functions</span>
|
42
|
+
<span class='fraction'>3/3</span>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
|
46
|
+
<div class='fl pad1y space-right2'>
|
47
|
+
<span class="strong">78.57% </span>
|
48
|
+
<span class="quiet">Lines</span>
|
49
|
+
<span class='fraction'>11/14</span>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
|
53
|
+
</div>
|
54
|
+
<p class="quiet">
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
56
|
+
</p>
|
57
|
+
<template id="filterTemplate">
|
58
|
+
<div class="quiet">
|
59
|
+
Filter:
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
61
|
+
</div>
|
62
|
+
</template>
|
63
|
+
</div>
|
64
|
+
<div class='status-line medium'></div>
|
65
|
+
<pre><table class="coverage">
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
104
|
+
<span class="cline-any cline-neutral"> </span>
|
105
|
+
<span class="cline-any cline-yes">1x</span>
|
106
|
+
<span class="cline-any cline-neutral"> </span>
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
109
|
+
<span class="cline-any cline-yes">1x</span>
|
110
|
+
<span class="cline-any cline-yes">1x</span>
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
112
|
+
<span class="cline-any cline-neutral"> </span>
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
114
|
+
<span class="cline-any cline-neutral"> </span>
|
115
|
+
<span class="cline-any cline-yes">1x</span>
|
116
|
+
<span class="cline-any cline-neutral"> </span>
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
118
|
+
<span class="cline-any cline-yes">1x</span>
|
119
|
+
<span class="cline-any cline-yes">1x</span>
|
120
|
+
<span class="cline-any cline-yes">1x</span>
|
121
|
+
<span class="cline-any cline-yes">1x</span>
|
122
|
+
<span class="cline-any cline-neutral"> </span>
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
124
|
+
<span class="cline-any cline-yes">1x</span>
|
125
|
+
<span class="cline-any cline-yes">1x</span>
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
127
|
+
<span class="cline-any cline-no"> </span>
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
133
|
+
<span class="cline-any cline-no"> </span>
|
134
|
+
<span class="cline-any cline-no"> </span>
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
139
|
+
<span class="cline-any cline-neutral"> </span>
|
140
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Migration } from './migration';
|
141
|
+
import { IMinioDBConnector, IMinioConfig, IMinioConnection } from '@biorate/minio';
|
142
|
+
import { inject, Types } from '@biorate/inversion';
|
143
|
+
/**
|
144
|
+
* @description Minio migration class
|
145
|
+
*/
|
146
|
+
export class Minio extends Migration {
|
147
|
+
@inject(Types.Minio) protected connector: IMinioDBConnector;
|
148
|
+
/**
|
149
|
+
* @description Minio process method realization
|
150
|
+
*/
|
151
|
+
protected async process() {
|
152
|
+
await this.forEach<IMinioConfig, IMinioConnection>(
|
153
|
+
'Minio',
|
154
|
+
async (config, connection, paths) =>
|
155
|
+
await this.forEachPath(paths, async (file, name) => {
|
156
|
+
const tableName = this.config.get<string>('migrations.tableName', 'migrations');
|
157
|
+
try {
|
158
|
+
await connection.makeBucket(tableName, tableName);
|
159
|
+
} catch {}
|
160
|
+
|
161
|
+
try {
|
162
|
+
await connection.getObject(tableName, name);
|
163
|
+
} catch (e) {
|
164
|
+
<span class="cstat-no" title="statement not covered" > await (</span>
|
165
|
+
require(file) as (
|
166
|
+
connection: IMinioConnection,
|
167
|
+
config: IMinioConfig,
|
168
|
+
) => Promise<void>
|
169
|
+
)(connection, config);
|
170
|
+
<span class="cstat-no" title="statement not covered" > await connection.putObject(tableName, name, Buffer.from('1'));</span>
|
171
|
+
<span class="cstat-no" title="statement not covered" > this.log(config.name, name);</span>
|
172
|
+
}
|
173
|
+
}),
|
174
|
+
);
|
175
|
+
}
|
176
|
+
}
|
177
|
+
</pre></td></tr></table></pre>
|
178
|
+
|
179
|
+
<div class='push'></div><!-- for sticky footer -->
|
180
|
+
</div><!-- /wrapper -->
|
181
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
182
|
+
Code coverage generated by
|
183
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
184
|
+
at Mon Aug 15 2022 14:09:53 GMT+0300 (Москва, стандартное время)
|
185
|
+
</div>
|
186
|
+
<script src="../../prettify.js"></script>
|
187
|
+
<script>
|
188
|
+
window.onload = function () {
|
189
|
+
prettyPrint();
|
190
|
+
};
|
191
|
+
</script>
|
192
|
+
<script src="../../sorter.js"></script>
|
193
|
+
<script src="../../block-navigation.js"></script>
|
194
|
+
</body>
|
195
|
+
</html>
|
196
|
+
|
@@ -0,0 +1,187 @@
|
|
1
|
+
|
2
|
+
<!doctype html>
|
3
|
+
<html lang="en">
|
4
|
+
|
5
|
+
<head>
|
6
|
+
<title>Code coverage report for src/types/mongodb.ts</title>
|
7
|
+
<meta charset="utf-8" />
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
12
|
+
<style type='text/css'>
|
13
|
+
.coverage-summary .sorter {
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
15
|
+
}
|
16
|
+
</style>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<div class='wrapper'>
|
21
|
+
<div class='pad1'>
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/types</a> mongodb.ts</h1>
|
23
|
+
<div class='clearfix'>
|
24
|
+
|
25
|
+
<div class='fl pad1y space-right2'>
|
26
|
+
<span class="strong">80% </span>
|
27
|
+
<span class="quiet">Statements</span>
|
28
|
+
<span class='fraction'>8/10</span>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
|
32
|
+
<div class='fl pad1y space-right2'>
|
33
|
+
<span class="strong">100% </span>
|
34
|
+
<span class="quiet">Branches</span>
|
35
|
+
<span class='fraction'>0/0</span>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
|
39
|
+
<div class='fl pad1y space-right2'>
|
40
|
+
<span class="strong">100% </span>
|
41
|
+
<span class="quiet">Functions</span>
|
42
|
+
<span class='fraction'>3/3</span>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
|
46
|
+
<div class='fl pad1y space-right2'>
|
47
|
+
<span class="strong">80% </span>
|
48
|
+
<span class="quiet">Lines</span>
|
49
|
+
<span class='fraction'>8/10</span>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
|
53
|
+
</div>
|
54
|
+
<p class="quiet">
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
56
|
+
</p>
|
57
|
+
<template id="filterTemplate">
|
58
|
+
<div class="quiet">
|
59
|
+
Filter:
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
61
|
+
</div>
|
62
|
+
</template>
|
63
|
+
</div>
|
64
|
+
<div class='status-line high'></div>
|
65
|
+
<pre><table class="coverage">
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
101
|
+
<span class="cline-any cline-neutral"> </span>
|
102
|
+
<span class="cline-any cline-yes">1x</span>
|
103
|
+
<span class="cline-any cline-neutral"> </span>
|
104
|
+
<span class="cline-any cline-neutral"> </span>
|
105
|
+
<span class="cline-any cline-neutral"> </span>
|
106
|
+
<span class="cline-any cline-yes">1x</span>
|
107
|
+
<span class="cline-any cline-yes">1x</span>
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
109
|
+
<span class="cline-any cline-neutral"> </span>
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
112
|
+
<span class="cline-any cline-yes">1x</span>
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
114
|
+
<span class="cline-any cline-neutral"> </span>
|
115
|
+
<span class="cline-any cline-yes">1x</span>
|
116
|
+
<span class="cline-any cline-yes">1x</span>
|
117
|
+
<span class="cline-any cline-yes">1x</span>
|
118
|
+
<span class="cline-any cline-neutral"> </span>
|
119
|
+
<span class="cline-any cline-neutral"> </span>
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
121
|
+
<span class="cline-any cline-neutral"> </span>
|
122
|
+
<span class="cline-any cline-no"> </span>
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
124
|
+
<span class="cline-any cline-neutral"> </span>
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
127
|
+
<span class="cline-any cline-neutral"> </span>
|
128
|
+
<span class="cline-any cline-no"> </span>
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
134
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Migration } from './migration';
|
135
|
+
import { IMongoDBConfig, IMongoDBConnection, IMongoDBConnector } from '@biorate/mongodb';
|
136
|
+
import { inject, Types } from '@biorate/inversion';
|
137
|
+
/**
|
138
|
+
* @description Mongodb migration class
|
139
|
+
*/
|
140
|
+
export class Mongodb extends Migration {
|
141
|
+
@inject(Types.Mongodb) protected connector: IMongoDBConnector;
|
142
|
+
/**
|
143
|
+
* @description Mongodb process method realization
|
144
|
+
*/
|
145
|
+
protected async process() {
|
146
|
+
await this.forEach<IMongoDBConfig, IMongoDBConnection>(
|
147
|
+
'MongoDB',
|
148
|
+
async (config, connection, paths) =>
|
149
|
+
await this.forEachPath(paths, async (file, name) => {
|
150
|
+
try {
|
151
|
+
await connection
|
152
|
+
.collection<{ _id: string }>(
|
153
|
+
this.config.get<string>('migrations.tableName', 'migrations'),
|
154
|
+
)
|
155
|
+
.insertOne({ _id: name });
|
156
|
+
<span class="cstat-no" title="statement not covered" > await (</span>
|
157
|
+
require(file) as (
|
158
|
+
connection: IMongoDBConnection,
|
159
|
+
config: IMongoDBConfig,
|
160
|
+
) => Promise<void>
|
161
|
+
)(connection, config);
|
162
|
+
<span class="cstat-no" title="statement not covered" > this.log(config.name, name);</span>
|
163
|
+
} catch (e) {}
|
164
|
+
}),
|
165
|
+
);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
</pre></td></tr></table></pre>
|
169
|
+
|
170
|
+
<div class='push'></div><!-- for sticky footer -->
|
171
|
+
</div><!-- /wrapper -->
|
172
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
173
|
+
Code coverage generated by
|
174
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
175
|
+
at Mon Aug 15 2022 14:09:53 GMT+0300 (Москва, стандартное время)
|
176
|
+
</div>
|
177
|
+
<script src="../../prettify.js"></script>
|
178
|
+
<script>
|
179
|
+
window.onload = function () {
|
180
|
+
prettyPrint();
|
181
|
+
};
|
182
|
+
</script>
|
183
|
+
<script src="../../sorter.js"></script>
|
184
|
+
<script src="../../block-navigation.js"></script>
|
185
|
+
</body>
|
186
|
+
</html>
|
187
|
+
|
@@ -23,30 +23,30 @@
|
|
23
23
|
<div class='clearfix'>
|
24
24
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
26
|
-
<span class="strong">
|
26
|
+
<span class="strong">94.11% </span>
|
27
27
|
<span class="quiet">Statements</span>
|
28
|
-
<span class='fraction'>
|
28
|
+
<span class='fraction'>16/17</span>
|
29
29
|
</div>
|
30
30
|
|
31
31
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
33
33
|
<span class="strong">50% </span>
|
34
34
|
<span class="quiet">Branches</span>
|
35
|
-
<span class='fraction'>
|
35
|
+
<span class='fraction'>1/2</span>
|
36
36
|
</div>
|
37
37
|
|
38
38
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
40
40
|
<span class="strong">100% </span>
|
41
41
|
<span class="quiet">Functions</span>
|
42
|
-
<span class='fraction'>
|
42
|
+
<span class='fraction'>4/4</span>
|
43
43
|
</div>
|
44
44
|
|
45
45
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
47
|
-
<span class="strong">
|
47
|
+
<span class="strong">100% </span>
|
48
48
|
<span class="quiet">Lines</span>
|
49
|
-
<span class='fraction'>
|
49
|
+
<span class='fraction'>16/16</span>
|
50
50
|
</div>
|
51
51
|
|
52
52
|
|
@@ -109,27 +109,27 @@
|
|
109
109
|
<a name='L44'></a><a href='#L44'>44</a>
|
110
110
|
<a name='L45'></a><a href='#L45'>45</a>
|
111
111
|
<a name='L46'></a><a href='#L46'>46</a>
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a
|
113
|
-
<span class="cline-any cline-yes">1x</span>
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
114
114
|
<span class="cline-any cline-yes">1x</span>
|
115
115
|
<span class="cline-any cline-yes">1x</span>
|
116
116
|
<span class="cline-any cline-yes">1x</span>
|
117
117
|
<span class="cline-any cline-neutral"> </span>
|
118
118
|
<span class="cline-any cline-neutral"> </span>
|
119
119
|
<span class="cline-any cline-neutral"> </span>
|
120
|
-
<span class="cline-any cline-
|
121
|
-
<span class="cline-any cline-yes">1x</span>
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
122
121
|
<span class="cline-any cline-neutral"> </span>
|
123
122
|
<span class="cline-any cline-neutral"> </span>
|
124
123
|
<span class="cline-any cline-neutral"> </span>
|
125
124
|
<span class="cline-any cline-neutral"> </span>
|
126
125
|
<span class="cline-any cline-yes">1x</span>
|
127
126
|
<span class="cline-any cline-yes">1x</span>
|
127
|
+
<span class="cline-any cline-neutral"> </span>
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
128
131
|
<span class="cline-any cline-yes">1x</span>
|
129
|
-
<span class="cline-any cline-
|
130
|
-
<span class="cline-any cline-yes">1x</span>
|
131
|
-
<span class="cline-any cline-no"> </span>
|
132
|
-
<span class="cline-any cline-no"> </span>
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
133
133
|
<span class="cline-any cline-neutral"> </span>
|
134
134
|
<span class="cline-any cline-yes">1x</span>
|
135
135
|
<span class="cline-any cline-neutral"> </span>
|
@@ -143,62 +143,65 @@
|
|
143
143
|
<span class="cline-any cline-neutral"> </span>
|
144
144
|
<span class="cline-any cline-yes">1x</span>
|
145
145
|
<span class="cline-any cline-yes">1x</span>
|
146
|
+
<span class="cline-any cline-neutral"> </span>
|
147
|
+
<span class="cline-any cline-neutral"> </span>
|
146
148
|
<span class="cline-any cline-yes">2x</span>
|
147
149
|
<span class="cline-any cline-yes">2x</span>
|
148
150
|
<span class="cline-any cline-yes">2x</span>
|
149
151
|
<span class="cline-any cline-yes">2x</span>
|
150
152
|
<span class="cline-any cline-yes">2x</span>
|
151
153
|
<span class="cline-any cline-yes">2x</span>
|
152
|
-
<span class="cline-any cline-
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
153
155
|
<span class="cline-any cline-neutral"> </span>
|
154
156
|
<span class="cline-any cline-neutral"> </span>
|
155
157
|
<span class="cline-any cline-neutral"> </span>
|
156
158
|
<span class="cline-any cline-neutral"> </span>
|
157
159
|
<span class="cline-any cline-neutral"> </span>
|
158
160
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { promises as fs } from 'fs';
|
159
|
-
import { path } from '@biorate/tools';
|
160
|
-
import { Migration } from './migration';
|
161
|
-
import { ISequelizeConnector, ISequelizeConfig, DataType } from '@biorate/sequelize';
|
162
161
|
import { inject, Types } from '@biorate/inversion';
|
162
|
+
import { Migration } from './migration';
|
163
|
+
import {
|
164
|
+
ISequelizeConnector,
|
165
|
+
ISequelizeConfig,
|
166
|
+
ISequelizeConnection,
|
167
|
+
DataType,
|
168
|
+
} from '@biorate/sequelize';
|
163
169
|
/**
|
164
170
|
* @description Sequelize migration class
|
165
171
|
*/
|
166
172
|
export class Sequelize extends Migration {
|
167
|
-
@inject(Types.Sequelize) protected
|
173
|
+
@inject(Types.Sequelize) protected connector: ISequelizeConnector;
|
168
174
|
/**
|
169
175
|
* @description Sequelize process method realization
|
170
176
|
*/
|
171
177
|
protected async process() {
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
{
|
183
|
-
name: {
|
184
|
-
type: DataType.CHAR,
|
185
|
-
primaryKey: true,
|
178
|
+
await this.forEach<ISequelizeConfig, ISequelizeConnection>(
|
179
|
+
'Sequelize',
|
180
|
+
async (config, connection, paths) => {
|
181
|
+
const model = connection.define(
|
182
|
+
this.config.get<string>('migrations.tableName', 'migrations'),
|
183
|
+
{
|
184
|
+
name: {
|
185
|
+
type: DataType.CHAR,
|
186
|
+
primaryKey: true,
|
187
|
+
},
|
186
188
|
},
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
189
|
+
{ timestamps: false },
|
190
|
+
);
|
191
|
+
await model.sync({});
|
192
|
+
await this.forEachPath(
|
193
|
+
paths,
|
194
|
+
async (file, name) =>
|
195
|
+
await connection.transaction(async () => {
|
196
|
+
const item = await model.findOne({ where: { name } });
|
197
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (item) <span class="cstat-no" title="statement not covered" >return;</span>
|
198
|
+
await connection.query(await fs.readFile(file, 'utf8'));
|
199
|
+
await model.create({ name });
|
200
|
+
this.log(config.name, name);
|
201
|
+
}),
|
202
|
+
);
|
203
|
+
},
|
204
|
+
);
|
202
205
|
}
|
203
206
|
}
|
204
207
|
</pre></td></tr></table></pre>
|
@@ -208,7 +211,7 @@ export class Sequelize extends Migration {
|
|
208
211
|
<div class='footer quiet pad2 space-top1 center small'>
|
209
212
|
Code coverage generated by
|
210
213
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
211
|
-
at
|
214
|
+
at Mon Aug 15 2022 14:09:53 GMT+0300 (Москва, стандартное время)
|
212
215
|
</div>
|
213
216
|
<script src="../../prettify.js"></script>
|
214
217
|
<script>
|