namirasoft-node-sequelize 1.4.14 → 1.4.16
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.
|
@@ -14,7 +14,7 @@ export declare abstract class BaseSequelizeDatabase extends BaseDatabase {
|
|
|
14
14
|
constructor(dialect: Dialect, host: string, port: number, name: string, user: string, pass: string, logging?: boolean, getConnectionString?: () => string);
|
|
15
15
|
getName(): string;
|
|
16
16
|
connect(): Promise<void>;
|
|
17
|
-
|
|
17
|
+
migrate(): Promise<void>;
|
|
18
18
|
isHealthy(): Promise<boolean>;
|
|
19
19
|
close(): Promise<void>;
|
|
20
20
|
startTransaction<T>(handler: (trx: Transaction) => Promise<T>, trx: Transaction | null): Promise<T>;
|
|
@@ -23,7 +23,7 @@ export declare abstract class BaseSequelizeDatabase extends BaseDatabase {
|
|
|
23
23
|
}, filters?: FilterItem[] | undefined): Promise<WhereOptions[]>;
|
|
24
24
|
getAdvancedSearchConditions(columns: string[], search: string): WhereOptions[];
|
|
25
25
|
getSortOptions(sorts?: SortItem[] | undefined): Order;
|
|
26
|
-
|
|
26
|
+
seedByFile<Model extends {
|
|
27
27
|
id: string | number;
|
|
28
28
|
}>(app: BaseApplication<any>, file_path: string, seedable_table: BaseSequelizeDatabaseSeedable<Model>, preprocess?: (item: Model) => Model): Promise<void>;
|
|
29
29
|
}
|
|
@@ -55,10 +55,20 @@ class BaseSequelizeDatabase extends namirasoft_node_1.BaseDatabase {
|
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
migrate() {
|
|
59
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
if (!process.env.NAMIRASOFT_MUTE)
|
|
61
|
-
|
|
60
|
+
if (!process.env.NAMIRASOFT_MUTE) {
|
|
61
|
+
if (!process.env.NAMIRASOFT_SEQUELIZE_SYNC)
|
|
62
|
+
yield this.sequelize.sync();
|
|
63
|
+
if (!process.env.NAMIRASOFT_SEQUELIZE_SYNC_ALTER)
|
|
64
|
+
yield this.sequelize.sync({
|
|
65
|
+
alter: true,
|
|
66
|
+
logging: (sql) => {
|
|
67
|
+
var _a;
|
|
68
|
+
(_a = namirasoft_log_1.Logger.main) === null || _a === void 0 ? void 0 : _a.critical(sql);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
62
72
|
});
|
|
63
73
|
}
|
|
64
74
|
isHealthy() {
|
|
@@ -130,18 +140,24 @@ class BaseSequelizeDatabase extends namirasoft_node_1.BaseDatabase {
|
|
|
130
140
|
});
|
|
131
141
|
return ans;
|
|
132
142
|
}
|
|
133
|
-
|
|
143
|
+
seedByFile(app, file_path, seedable_table, preprocess) {
|
|
134
144
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
145
|
if (!preprocess)
|
|
136
146
|
preprocess = i => i;
|
|
137
147
|
let items = app.read(file_path);
|
|
138
148
|
for (let i = 0; i < items.length; i++) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
149
|
+
try {
|
|
150
|
+
const item = preprocess(items[i]);
|
|
151
|
+
let product = yield seedable_table.getOrNull(item.id, null);
|
|
152
|
+
if (product === null)
|
|
153
|
+
yield seedable_table.create(item, null);
|
|
154
|
+
else
|
|
155
|
+
yield seedable_table.update(item, null);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
console.log({ item: items[i] });
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
145
161
|
}
|
|
146
162
|
});
|
|
147
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSequelizeDatabase.js","sourceRoot":"","sources":["../src/BaseSequelizeDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAsF;AACtF,mDAAwC;AACxC,qDAAiG;AACjG,yDAAiD;AACjD,yCAAqF;AACrF,qFAAkF;AAUlF,MAAsB,qBAAsB,SAAQ,8BAAY;IAK5D,YAAY,OAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK,EAAE,mBAAkC;QAE5J,KAAK,EAAE,CAAC;QACR,IAAI,gBAAgB,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,EAAI,CAAC;QAC/C,IAAI,gBAAgB;YAChB,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC;gBAC3B,OAAO;gBACP,cAAc,EAAE;oBACZ,gBAAgB;iBACnB;gBACD,OAAO;gBACP,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;aAC5B,CAAC,CAAC;;YAEH,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAC1B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ;gBACI,OAAO;gBACP,IAAI;gBACJ,IAAI;gBACJ,OAAO;gBACP,IAAI,EAAE;oBACF,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,EAAE;iBACV;aACJ,CAAC,CAAC;QAEX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACQ,OAAO;QAEZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACc,OAAO;;;YAElB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAChC,CAAC;gBACG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBACpC,MAAA,uBAAM,CAAC,IAAI,0CAAE,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;KAAA;IACc,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"BaseSequelizeDatabase.js","sourceRoot":"","sources":["../src/BaseSequelizeDatabase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"framework": "npm",
|
|
9
9
|
"application": "package",
|
|
10
10
|
"private": false,
|
|
11
|
-
"version": "1.4.
|
|
11
|
+
"version": "1.4.16",
|
|
12
12
|
"author": "Amir Abolhasani",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"main": "./dist/index.js",
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
"build": ""
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@types/node": "^25.
|
|
21
|
-
"namirasoft-core": "^1.4.
|
|
22
|
-
"namirasoft-node": "^1.4.
|
|
23
|
-
"sequelize": "^6.37.
|
|
20
|
+
"@types/node": "^25.5.0",
|
|
21
|
+
"namirasoft-core": "^1.4.113",
|
|
22
|
+
"namirasoft-node": "^1.4.145",
|
|
23
|
+
"sequelize": "^6.37.8"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -62,10 +62,21 @@ export abstract class BaseSequelizeDatabase extends BaseDatabase
|
|
|
62
62
|
Logger.main?.success(`Database - ${this.dialect} - ${this.name} - was connected.`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
override async
|
|
65
|
+
override async migrate()
|
|
66
66
|
{
|
|
67
67
|
if (!process.env.NAMIRASOFT_MUTE)
|
|
68
|
-
|
|
68
|
+
{
|
|
69
|
+
if (!process.env.NAMIRASOFT_SEQUELIZE_SYNC)
|
|
70
|
+
await this.sequelize.sync();
|
|
71
|
+
if (!process.env.NAMIRASOFT_SEQUELIZE_SYNC_ALTER)
|
|
72
|
+
await this.sequelize.sync({
|
|
73
|
+
alter: true,
|
|
74
|
+
logging: (sql: string) =>
|
|
75
|
+
{
|
|
76
|
+
Logger.main?.critical(sql);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
69
80
|
}
|
|
70
81
|
override async isHealthy()
|
|
71
82
|
{
|
|
@@ -149,19 +160,26 @@ export abstract class BaseSequelizeDatabase extends BaseDatabase
|
|
|
149
160
|
|
|
150
161
|
return ans;
|
|
151
162
|
}
|
|
152
|
-
public async
|
|
163
|
+
public async seedByFile<Model extends { id: string | number }>(app: BaseApplication<any>, file_path: string, seedable_table: BaseSequelizeDatabaseSeedable<Model>, preprocess?: (item: Model) => Model)
|
|
153
164
|
{
|
|
154
165
|
if (!preprocess)
|
|
155
166
|
preprocess = i => i;
|
|
156
167
|
let items = app.read<Model[]>(file_path);
|
|
157
168
|
for (let i = 0; i < items.length; i++)
|
|
158
169
|
{
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
await seedable_table.
|
|
163
|
-
|
|
164
|
-
|
|
170
|
+
try
|
|
171
|
+
{
|
|
172
|
+
const item = preprocess(items[i]);
|
|
173
|
+
let product = await seedable_table.getOrNull(item.id, null);
|
|
174
|
+
if (product === null)
|
|
175
|
+
await seedable_table.create(item, null);
|
|
176
|
+
else
|
|
177
|
+
await seedable_table.update(item, null);
|
|
178
|
+
} catch (error)
|
|
179
|
+
{
|
|
180
|
+
console.log({ item: items[i] });
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
165
183
|
}
|
|
166
184
|
}
|
|
167
185
|
}
|