vona-module-a-ormdialect 5.1.18 → 5.1.20
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/dist/bean/databaseDialect.betterSqlite3.d.ts.map +1 -1
- package/dist/bean/databaseDialect.mysql.d.ts.map +1 -1
- package/dist/bean/databaseDialect.pg.d.ts.map +1 -1
- package/dist/index.js +29 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/bean/databaseDialect.betterSqlite3.ts +41 -1
- package/src/bean/databaseDialect.mysql.ts +4 -1
- package/src/bean/databaseDialect.pg.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseDialect.betterSqlite3.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.betterSqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EAClC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"databaseDialect.betterSqlite3.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.betterSqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EAClC,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,oCAAqC,SAAQ,gCAAgC;CAAG;AAEjG,qBACa,4BAA6B,SAAQ,0BAA0B;IAC1E,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAOnD;IAEI,cAAc,CAClB,cAAc,EAAE,IAAI,CAAC,aAAa,EAClC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAWjC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzF,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAU/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjB,KAAK,CAAC,MAAM,KAAA;IAIZ,OAAO,CAAC,SAAS;CAOlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseDialect.mysql.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.mysql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,4BAA6B,SAAQ,gCAAgC;CAAG;AAEzF,qBACa,oBAAqB,SAAQ,0BAA0B;IAClE,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAMnD;IAEI,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"databaseDialect.mysql.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.mysql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,4BAA6B,SAAQ,gCAAgC;CAAG;AAEzF,qBACa,oBAAqB,SAAQ,0BAA0B;IAClE,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAMnD;IAEI,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAajC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAW/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIX,YAAY,CAChB,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAgB3C,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseDialect.pg.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;CAAG;AAEtF,qBACa,iBAAkB,SAAQ,0BAA0B;IAC/D,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAa;IAE5D,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"databaseDialect.pg.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;CAAG;AAEtF,qBACa,iBAAkB,SAAQ,0BAA0B;IAC/D,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAa;IAE5D,cAAc,CAClB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAYjC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAChB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAa/B,MAAM,CACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAIhD,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAyBtF"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { BeanInfo, $Class, Virtual, BeanScopeBase } from 'vona';
|
|
1
|
+
import { BeanInfo, resolveTestRunId, resolveVonaLocalPaths, assertTestRunOwner, $Class, Virtual, BeanScopeBase } from 'vona';
|
|
2
2
|
import { __decorate } from 'tslib';
|
|
3
3
|
import { ensureDir, remove } from 'fs-extra';
|
|
4
4
|
import { globby } from 'globby';
|
|
5
|
+
import { lstat } from 'node:fs/promises';
|
|
5
6
|
import path from 'node:path';
|
|
6
7
|
import { DatabaseDialect, ServiceDatabaseDialectBase } from 'vona-module-a-orm';
|
|
7
8
|
import { promisify } from 'node:util';
|
|
@@ -42,6 +43,19 @@ let DatabaseDialectBetterSqlite3 = class DatabaseDialectBetterSqlite3 extends Se
|
|
|
42
43
|
return path.join(dbDir, `${databaseName}.db`);
|
|
43
44
|
}
|
|
44
45
|
async dropDatabase(_schemaBuilder, databaseName) {
|
|
46
|
+
const isolated = resolveTestRunId(this.app.meta.env.META_MODE, this.app.meta.env.VONA_TEST_RUN_ID);
|
|
47
|
+
if (isolated) {
|
|
48
|
+
const paths = resolveVonaLocalPaths(this.app.projectPath, 'test', isolated);
|
|
49
|
+
assertTestRunOwner(paths.dataRoot, isolated);
|
|
50
|
+
const basename = path.basename(databaseName);
|
|
51
|
+
if (path.resolve(databaseName) !== path.join(paths.sqliteRoot, basename) || !/^vona-test-[\w-]+-\d{8}-\d{6}\.db$/.test(basename)) {
|
|
52
|
+
throw new Error(`Isolated test cannot remove SQLite database outside its owned root: ${databaseName}`);
|
|
53
|
+
}
|
|
54
|
+
await assertNotSymlink(paths.sqliteRoot);
|
|
55
|
+
for (const file of [databaseName, ...['shm', 'wal', 'journal'].map(part => `${databaseName}-${part}`)]) {
|
|
56
|
+
await assertNotSymlink(file);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
45
59
|
await remove(databaseName);
|
|
46
60
|
for (const part of ['shm', 'wal', 'journal']) {
|
|
47
61
|
await remove(`${databaseName}-${part}`);
|
|
@@ -66,12 +80,21 @@ let DatabaseDialectBetterSqlite3 = class DatabaseDialectBetterSqlite3 extends Se
|
|
|
66
80
|
return result;
|
|
67
81
|
}
|
|
68
82
|
_getDbDir() {
|
|
69
|
-
return
|
|
83
|
+
return resolveVonaLocalPaths(this.app.projectPath, this.app.meta.env.META_MODE, this.app.meta.env.VONA_TEST_RUN_ID).sqliteRoot;
|
|
70
84
|
}
|
|
71
85
|
};
|
|
72
86
|
DatabaseDialectBetterSqlite3 = __decorate([DatabaseDialect(), BeanInfo({
|
|
73
87
|
module: "a-ormdialect"
|
|
74
88
|
})], DatabaseDialectBetterSqlite3);
|
|
89
|
+
async function assertNotSymlink(file) {
|
|
90
|
+
try {
|
|
91
|
+
if ((await lstat(file)).isSymbolicLink()) {
|
|
92
|
+
throw new Error(`Isolated test SQLite path is a symlink: ${file}`);
|
|
93
|
+
}
|
|
94
|
+
} catch (error) {
|
|
95
|
+
if (error.code !== 'ENOENT') throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
75
98
|
async function sqlite3_afterCreate(conn) {
|
|
76
99
|
conn.pragma('busy_timeout = 5000');
|
|
77
100
|
const pragma = conn.pragma('journal_mode');
|
|
@@ -97,7 +120,8 @@ let DatabaseDialectMysql = class DatabaseDialectMysql extends ServiceDatabaseDia
|
|
|
97
120
|
};
|
|
98
121
|
}
|
|
99
122
|
async fetchDatabases(schemaBuilder, databasePrefix) {
|
|
100
|
-
const
|
|
123
|
+
const escapedPrefix = databasePrefix.replaceAll("'", "''");
|
|
124
|
+
const res = await schemaBuilder.raw(`select schema_name from information_schema.schemata where left(schema_name, ${databasePrefix.length}) = '${escapedPrefix}'`);
|
|
101
125
|
let dbs = res[0];
|
|
102
126
|
dbs = dbs.map(db => {
|
|
103
127
|
const name = db[Object.keys(db)[0]];
|
|
@@ -191,7 +215,8 @@ let DatabaseDialectPg = class DatabaseDialectPg extends ServiceDatabaseDialectBa
|
|
|
191
215
|
this._configBase = undefined;
|
|
192
216
|
}
|
|
193
217
|
async fetchDatabases(schemaBuilder, databasePrefix) {
|
|
194
|
-
const
|
|
218
|
+
const escapedPrefix = databasePrefix.replaceAll("'", "''");
|
|
219
|
+
const res = await schemaBuilder.raw(`select datname from pg_database where left(datname, ${databasePrefix.length}) = '${escapedPrefix}'`);
|
|
195
220
|
let dbs = res.rows;
|
|
196
221
|
dbs = dbs.map(db => {
|
|
197
222
|
return {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/bean/databaseDialect.betterSqlite3.ts","../src/bean/databaseDialect.mysql.ts","../src/bean/databaseDialect.mysql3.ts","../src/bean/databaseDialect.pg.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DatabaseDialectBetterSqlite3","ServiceDatabaseDialectBase","constructor","args","_capabilities","like","ilike","level","_configBase","useNullAsDefault","pool","afterCreate","conn","done","sqlite3_afterCreate","then","catch","fetchDatabases","_schemaBuilder","databasePrefix","dbDir","_getDbDir","files","globby","cwd","onlyFiles","map","item","name","path","join","createDatabase","databaseName","ensureDir","dropDatabase","remove","part","fetchIndexes","schemaBuilder","tableName","items","raw","indexName","insert","builder","datas","insertAsMysql","select","fn","selectAsSqlite3","query","result","app","projectPath","__decorate","DatabaseDialect","__z_BeanInfo","module","pragma","journal_mode","toLocaleLowerCase","DatabaseDialectMysql","mysql_afterCreate","res","dbs","db","Object","keys","Key_name","selectAsMysql","fetchColumns","connection","columns","column","columnName","columnType","viewDependents","viewName","sqlViews","distinct","fromRaw","where","ref_name","dep_name","_executeQuery","sql","queryAsync","promisify","cb","DatabaseDialectMysql3","$Class","extend","Virtual","DatabaseDialectPg","undefined","rows","datname","indexname","insertAsPg","filter","toLowerCase","ScopeModuleAOrmdialect","BeanScopeBase","Scope"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/bean/databaseDialect.betterSqlite3.ts","../src/bean/databaseDialect.mysql.ts","../src/bean/databaseDialect.mysql3.ts","../src/bean/databaseDialect.pg.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DatabaseDialectBetterSqlite3","ServiceDatabaseDialectBase","constructor","args","_capabilities","like","ilike","level","_configBase","useNullAsDefault","pool","afterCreate","conn","done","sqlite3_afterCreate","then","catch","fetchDatabases","_schemaBuilder","databasePrefix","dbDir","_getDbDir","files","globby","cwd","onlyFiles","map","item","name","path","join","createDatabase","databaseName","ensureDir","dropDatabase","isolated","resolveTestRunId","app","meta","env","META_MODE","VONA_TEST_RUN_ID","paths","resolveVonaLocalPaths","projectPath","assertTestRunOwner","dataRoot","basename","resolve","sqliteRoot","test","Error","assertNotSymlink","file","part","remove","fetchIndexes","schemaBuilder","tableName","items","raw","indexName","insert","builder","datas","insertAsMysql","select","fn","selectAsSqlite3","query","result","__decorate","DatabaseDialect","__z_BeanInfo","module","lstat","isSymbolicLink","error","code","pragma","journal_mode","toLocaleLowerCase","DatabaseDialectMysql","mysql_afterCreate","escapedPrefix","replaceAll","res","length","dbs","db","Object","keys","Key_name","selectAsMysql","fetchColumns","connection","columns","column","columnName","columnType","viewDependents","viewName","sqlViews","distinct","fromRaw","where","ref_name","dep_name","_executeQuery","sql","queryAsync","promisify","cb","DatabaseDialectMysql3","$Class","extend","Virtual","DatabaseDialectPg","undefined","rows","datname","indexname","insertAsPg","filter","toLowerCase","ScopeModuleAOrmdialect","BeanScopeBase","Scope"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,9 @@ import type {
|
|
|
11
11
|
|
|
12
12
|
import { ensureDir, remove } from 'fs-extra';
|
|
13
13
|
import { globby } from 'globby';
|
|
14
|
+
import { lstat } from 'node:fs/promises';
|
|
14
15
|
import path from 'node:path';
|
|
16
|
+
import { assertTestRunOwner, resolveVonaLocalPaths, resolveTestRunId } from 'vona';
|
|
15
17
|
import { ServiceDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
|
|
16
18
|
|
|
17
19
|
export interface IDatabaseDialectOptionsBetterSqlite3 extends IDecoratorDatabaseDialectOptions {}
|
|
@@ -54,6 +56,30 @@ export class DatabaseDialectBetterSqlite3 extends ServiceDatabaseDialectBase {
|
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
async dropDatabase(_schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<void> {
|
|
59
|
+
const isolated = resolveTestRunId(
|
|
60
|
+
this.app.meta.env.META_MODE,
|
|
61
|
+
this.app.meta.env.VONA_TEST_RUN_ID,
|
|
62
|
+
);
|
|
63
|
+
if (isolated) {
|
|
64
|
+
const paths = resolveVonaLocalPaths(this.app.projectPath, 'test', isolated);
|
|
65
|
+
assertTestRunOwner(paths.dataRoot, isolated);
|
|
66
|
+
const basename = path.basename(databaseName);
|
|
67
|
+
if (
|
|
68
|
+
path.resolve(databaseName) !== path.join(paths.sqliteRoot, basename) ||
|
|
69
|
+
!/^vona-test-[\w-]+-\d{8}-\d{6}\.db$/.test(basename)
|
|
70
|
+
) {
|
|
71
|
+
throw new Error(
|
|
72
|
+
`Isolated test cannot remove SQLite database outside its owned root: ${databaseName}`,
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
await assertNotSymlink(paths.sqliteRoot);
|
|
76
|
+
for (const file of [
|
|
77
|
+
databaseName,
|
|
78
|
+
...['shm', 'wal', 'journal'].map(part => `${databaseName}-${part}`),
|
|
79
|
+
]) {
|
|
80
|
+
await assertNotSymlink(file);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
57
83
|
await remove(databaseName);
|
|
58
84
|
for (const part of ['shm', 'wal', 'journal']) {
|
|
59
85
|
await remove(`${databaseName}-${part}`);
|
|
@@ -93,7 +119,21 @@ export class DatabaseDialectBetterSqlite3 extends ServiceDatabaseDialectBase {
|
|
|
93
119
|
}
|
|
94
120
|
|
|
95
121
|
private _getDbDir() {
|
|
96
|
-
return
|
|
122
|
+
return resolveVonaLocalPaths(
|
|
123
|
+
this.app.projectPath,
|
|
124
|
+
this.app.meta.env.META_MODE,
|
|
125
|
+
this.app.meta.env.VONA_TEST_RUN_ID,
|
|
126
|
+
).sqliteRoot;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async function assertNotSymlink(file: string) {
|
|
131
|
+
try {
|
|
132
|
+
if ((await lstat(file)).isSymbolicLink()) {
|
|
133
|
+
throw new Error(`Isolated test SQLite path is a symlink: ${file}`);
|
|
134
|
+
}
|
|
135
|
+
} catch (error) {
|
|
136
|
+
if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;
|
|
97
137
|
}
|
|
98
138
|
}
|
|
99
139
|
|
|
@@ -34,7 +34,10 @@ export class DatabaseDialectMysql extends ServiceDatabaseDialectBase {
|
|
|
34
34
|
schemaBuilder: Knex.SchemaBuilder,
|
|
35
35
|
databasePrefix: string,
|
|
36
36
|
): Promise<IFetchDatabasesResultItem[]> {
|
|
37
|
-
const
|
|
37
|
+
const escapedPrefix = databasePrefix.replaceAll("'", "''");
|
|
38
|
+
const res = await schemaBuilder.raw(
|
|
39
|
+
`select schema_name from information_schema.schemata where left(schema_name, ${databasePrefix.length}) = '${escapedPrefix}'`,
|
|
40
|
+
);
|
|
38
41
|
let dbs = res[0];
|
|
39
42
|
dbs = dbs.map(db => {
|
|
40
43
|
const name = db[Object.keys(db)[0]];
|
|
@@ -26,8 +26,9 @@ export class DatabaseDialectPg extends ServiceDatabaseDialectBase {
|
|
|
26
26
|
schemaBuilder: Knex.SchemaBuilder,
|
|
27
27
|
databasePrefix: string,
|
|
28
28
|
): Promise<IFetchDatabasesResultItem[]> {
|
|
29
|
+
const escapedPrefix = databasePrefix.replaceAll("'", "''");
|
|
29
30
|
const res: any = await schemaBuilder.raw(
|
|
30
|
-
`select datname from pg_database where datname
|
|
31
|
+
`select datname from pg_database where left(datname, ${databasePrefix.length}) = '${escapedPrefix}'`,
|
|
31
32
|
);
|
|
32
33
|
let dbs = res.rows;
|
|
33
34
|
dbs = dbs.map(db => {
|