@simplysm/orm-common 13.0.99 → 14.0.1
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/create-db-context.d.ts +10 -10
- package/dist/create-db-context.js +312 -276
- package/dist/create-db-context.js.map +1 -6
- package/dist/ddl/column-ddl.d.ts +4 -4
- package/dist/ddl/column-ddl.js +41 -35
- package/dist/ddl/column-ddl.js.map +1 -6
- package/dist/ddl/initialize.d.ts +17 -17
- package/dist/ddl/initialize.js +200 -142
- package/dist/ddl/initialize.js.map +1 -6
- package/dist/ddl/relation-ddl.d.ts +6 -6
- package/dist/ddl/relation-ddl.js +55 -48
- package/dist/ddl/relation-ddl.js.map +1 -6
- package/dist/ddl/schema-ddl.d.ts +4 -4
- package/dist/ddl/schema-ddl.js +21 -15
- package/dist/ddl/schema-ddl.js.map +1 -6
- package/dist/ddl/table-ddl.d.ts +20 -20
- package/dist/ddl/table-ddl.js +139 -93
- package/dist/ddl/table-ddl.js.map +1 -6
- package/dist/define-db-context.js +10 -13
- package/dist/define-db-context.js.map +1 -6
- package/dist/errors/db-transaction-error.d.ts +15 -15
- package/dist/errors/db-transaction-error.d.ts.map +1 -1
- package/dist/errors/db-transaction-error.js +53 -19
- package/dist/errors/db-transaction-error.js.map +1 -6
- package/dist/exec/executable.d.ts +23 -23
- package/dist/exec/executable.js +94 -40
- package/dist/exec/executable.js.map +1 -6
- package/dist/exec/queryable.d.ts +97 -97
- package/dist/exec/queryable.js +1310 -1204
- package/dist/exec/queryable.js.map +1 -6
- package/dist/exec/search-parser.d.ts +31 -31
- package/dist/exec/search-parser.d.ts.map +1 -1
- package/dist/exec/search-parser.js +158 -59
- package/dist/exec/search-parser.js.map +1 -6
- package/dist/expr/expr-unit.d.ts +4 -4
- package/dist/expr/expr-unit.js +24 -18
- package/dist/expr/expr-unit.js.map +1 -6
- package/dist/expr/expr.d.ts +6 -6
- package/dist/expr/expr.js +1872 -1844
- package/dist/expr/expr.js.map +1 -6
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -6
- package/dist/models/system-migration.js +7 -7
- package/dist/models/system-migration.js.map +1 -6
- package/dist/query-builder/base/expr-renderer-base.d.ts +10 -10
- package/dist/query-builder/base/expr-renderer-base.js +27 -21
- package/dist/query-builder/base/expr-renderer-base.js.map +1 -6
- package/dist/query-builder/base/query-builder-base.d.ts +21 -21
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +90 -80
- package/dist/query-builder/base/query-builder-base.js.map +1 -6
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +447 -420
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -6
- package/dist/query-builder/mssql/mssql-query-builder.js +483 -443
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -6
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +451 -419
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -6
- package/dist/query-builder/mysql/mysql-query-builder.js +570 -479
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -6
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +449 -422
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -6
- package/dist/query-builder/postgresql/postgresql-query-builder.js +511 -460
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -6
- package/dist/query-builder/query-builder.d.ts +1 -1
- package/dist/query-builder/query-builder.js +13 -13
- package/dist/query-builder/query-builder.js.map +1 -6
- package/dist/schema/factory/column-builder.d.ts +84 -84
- package/dist/schema/factory/column-builder.js +248 -185
- package/dist/schema/factory/column-builder.js.map +1 -6
- package/dist/schema/factory/index-builder.d.ts +38 -38
- package/dist/schema/factory/index-builder.js +144 -85
- package/dist/schema/factory/index-builder.js.map +1 -6
- package/dist/schema/factory/relation-builder.d.ts +91 -91
- package/dist/schema/factory/relation-builder.d.ts.map +1 -1
- package/dist/schema/factory/relation-builder.js +274 -136
- package/dist/schema/factory/relation-builder.js.map +1 -6
- package/dist/schema/procedure-builder.d.ts +51 -51
- package/dist/schema/procedure-builder.d.ts.map +1 -1
- package/dist/schema/procedure-builder.js +205 -131
- package/dist/schema/procedure-builder.js.map +1 -6
- package/dist/schema/table-builder.d.ts +55 -55
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +274 -205
- package/dist/schema/table-builder.js.map +1 -6
- package/dist/schema/view-builder.d.ts +44 -44
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +189 -116
- package/dist/schema/view-builder.js.map +1 -6
- package/dist/types/column.js +60 -30
- package/dist/types/column.js.map +1 -6
- package/dist/types/db-context-def.d.ts +9 -9
- package/dist/types/db-context-def.js +2 -1
- package/dist/types/db-context-def.js.map +1 -6
- package/dist/types/db.d.ts +47 -47
- package/dist/types/db.js +15 -5
- package/dist/types/db.js.map +1 -6
- package/dist/types/expr.d.ts +81 -81
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/expr.js +3 -1
- package/dist/types/expr.js.map +1 -6
- package/dist/types/query-def.d.ts +46 -46
- package/dist/types/query-def.d.ts.map +1 -1
- package/dist/types/query-def.js +31 -24
- package/dist/types/query-def.js.map +1 -6
- package/dist/utils/result-parser.js +362 -221
- package/dist/utils/result-parser.js.map +1 -6
- package/package.json +5 -7
- package/src/create-db-context.ts +31 -31
- package/src/ddl/column-ddl.ts +4 -4
- package/src/ddl/initialize.ts +38 -38
- package/src/ddl/relation-ddl.ts +6 -6
- package/src/ddl/schema-ddl.ts +4 -4
- package/src/ddl/table-ddl.ts +24 -24
- package/src/errors/db-transaction-error.ts +13 -13
- package/src/exec/executable.ts +25 -25
- package/src/exec/queryable.ts +134 -134
- package/src/exec/search-parser.ts +50 -50
- package/src/expr/expr-unit.ts +4 -4
- package/src/expr/expr.ts +13 -13
- package/src/index.ts +8 -8
- package/src/models/system-migration.ts +1 -1
- package/src/query-builder/base/expr-renderer-base.ts +21 -21
- package/src/query-builder/base/query-builder-base.ts +33 -33
- package/src/query-builder/mssql/mssql-expr-renderer.ts +11 -11
- package/src/query-builder/mssql/mssql-query-builder.ts +11 -11
- package/src/query-builder/mysql/mysql-expr-renderer.ts +15 -15
- package/src/query-builder/mysql/mysql-query-builder.ts +3 -3
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +9 -9
- package/src/query-builder/postgresql/postgresql-query-builder.ts +7 -7
- package/src/query-builder/query-builder.ts +1 -1
- package/src/schema/factory/column-builder.ts +86 -86
- package/src/schema/factory/index-builder.ts +38 -38
- package/src/schema/factory/relation-builder.ts +93 -93
- package/src/schema/procedure-builder.ts +52 -52
- package/src/schema/table-builder.ts +56 -56
- package/src/schema/view-builder.ts +45 -45
- package/src/types/column.ts +1 -1
- package/src/types/db-context-def.ts +15 -15
- package/src/types/db.ts +50 -50
- package/src/types/expr.ts +103 -103
- package/src/types/query-def.ts +50 -50
- package/src/utils/result-parser.ts +39 -39
- package/README.md +0 -192
- package/docs/core.md +0 -234
- package/docs/expression.md +0 -234
- package/docs/query-builder.md +0 -93
- package/docs/queryable.md +0 -198
- package/docs/schema-builders.md +0 -463
- package/docs/types.md +0 -445
- package/docs/utilities.md +0 -27
- package/tests/db-context/create-db-context.spec.ts +0 -193
- package/tests/db-context/define-db-context.spec.ts +0 -17
- package/tests/ddl/basic.expected.ts +0 -341
- package/tests/ddl/basic.spec.ts +0 -557
- package/tests/ddl/column-builder.expected.ts +0 -310
- package/tests/ddl/column-builder.spec.ts +0 -525
- package/tests/ddl/index-builder.expected.ts +0 -38
- package/tests/ddl/index-builder.spec.ts +0 -148
- package/tests/ddl/procedure-builder.expected.ts +0 -52
- package/tests/ddl/procedure-builder.spec.ts +0 -128
- package/tests/ddl/relation-builder.expected.ts +0 -36
- package/tests/ddl/relation-builder.spec.ts +0 -171
- package/tests/ddl/table-builder.expected.ts +0 -113
- package/tests/ddl/table-builder.spec.ts +0 -399
- package/tests/ddl/view-builder.expected.ts +0 -38
- package/tests/ddl/view-builder.spec.ts +0 -116
- package/tests/dml/delete.expected.ts +0 -96
- package/tests/dml/delete.spec.ts +0 -127
- package/tests/dml/insert.expected.ts +0 -192
- package/tests/dml/insert.spec.ts +0 -210
- package/tests/dml/update.expected.ts +0 -176
- package/tests/dml/update.spec.ts +0 -222
- package/tests/dml/upsert.expected.ts +0 -215
- package/tests/dml/upsert.spec.ts +0 -190
- package/tests/errors/queryable-errors.spec.ts +0 -126
- package/tests/escape.spec.ts +0 -59
- package/tests/examples/pivot.expected.ts +0 -211
- package/tests/examples/pivot.spec.ts +0 -200
- package/tests/examples/sampling.expected.ts +0 -69
- package/tests/examples/sampling.spec.ts +0 -42
- package/tests/examples/unpivot.expected.ts +0 -120
- package/tests/examples/unpivot.spec.ts +0 -161
- package/tests/exec/search-parser.spec.ts +0 -267
- package/tests/executable/basic.expected.ts +0 -18
- package/tests/executable/basic.spec.ts +0 -54
- package/tests/expr/comparison.expected.ts +0 -282
- package/tests/expr/comparison.spec.ts +0 -334
- package/tests/expr/conditional.expected.ts +0 -134
- package/tests/expr/conditional.spec.ts +0 -249
- package/tests/expr/date.expected.ts +0 -332
- package/tests/expr/date.spec.ts +0 -459
- package/tests/expr/math.expected.ts +0 -62
- package/tests/expr/math.spec.ts +0 -59
- package/tests/expr/string.expected.ts +0 -218
- package/tests/expr/string.spec.ts +0 -300
- package/tests/expr/utility.expected.ts +0 -147
- package/tests/expr/utility.spec.ts +0 -155
- package/tests/select/basic.expected.ts +0 -322
- package/tests/select/basic.spec.ts +0 -433
- package/tests/select/filter.expected.ts +0 -357
- package/tests/select/filter.spec.ts +0 -954
- package/tests/select/group.expected.ts +0 -169
- package/tests/select/group.spec.ts +0 -159
- package/tests/select/join.expected.ts +0 -582
- package/tests/select/join.spec.ts +0 -692
- package/tests/select/order.expected.ts +0 -150
- package/tests/select/order.spec.ts +0 -140
- package/tests/select/recursive-cte.expected.ts +0 -244
- package/tests/select/recursive-cte.spec.ts +0 -514
- package/tests/select/result-meta.spec.ts +0 -270
- package/tests/select/subquery.expected.ts +0 -363
- package/tests/select/subquery.spec.ts +0 -441
- package/tests/select/view.expected.ts +0 -155
- package/tests/select/view.spec.ts +0 -235
- package/tests/select/window.expected.ts +0 -345
- package/tests/select/window.spec.ts +0 -433
- package/tests/setup/MockExecutor.ts +0 -18
- package/tests/setup/TestDbContext.ts +0 -59
- package/tests/setup/models/Company.ts +0 -13
- package/tests/setup/models/Employee.ts +0 -10
- package/tests/setup/models/MonthlySales.ts +0 -11
- package/tests/setup/models/Post.ts +0 -16
- package/tests/setup/models/Sales.ts +0 -10
- package/tests/setup/models/User.ts +0 -19
- package/tests/setup/procedure/GetAllUsers.ts +0 -9
- package/tests/setup/procedure/GetUserById.ts +0 -12
- package/tests/setup/test-utils.ts +0 -72
- package/tests/setup/views/ActiveUsers.ts +0 -8
- package/tests/setup/views/UserSummary.ts +0 -11
- package/tests/types/nullable-queryable-record.spec.ts +0 -97
- package/tests/utils/result-parser-perf.spec.ts +0 -143
- package/tests/utils/result-parser.spec.ts +0 -667
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/result-parser.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"result-parser.js","sourceRoot":"","sources":["..\\..\\src\\utils\\result-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/orm-common",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"author": "
|
|
3
|
+
"version": "14.0.1",
|
|
4
|
+
"description": "심플리즘 패키지 - ORM (common)",
|
|
5
|
+
"author": "심플리즘",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -14,12 +14,10 @@
|
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
15
|
"files": [
|
|
16
16
|
"dist",
|
|
17
|
-
"src"
|
|
18
|
-
"tests",
|
|
19
|
-
"docs"
|
|
17
|
+
"src"
|
|
20
18
|
],
|
|
21
19
|
"sideEffects": false,
|
|
22
20
|
"dependencies": {
|
|
23
|
-
"@simplysm/core-common": "
|
|
21
|
+
"@simplysm/core-common": "14.0.1"
|
|
24
22
|
}
|
|
25
23
|
}
|
package/src/create-db-context.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { queryable } from "./exec/queryable";
|
|
|
15
15
|
import { executable } from "./exec/executable";
|
|
16
16
|
import { obj } from "@simplysm/core-common";
|
|
17
17
|
|
|
18
|
-
// DDL
|
|
18
|
+
// DDL import
|
|
19
19
|
import * as tableDdl from "./ddl/table-ddl";
|
|
20
20
|
import * as columnDdl from "./ddl/column-ddl";
|
|
21
21
|
import * as relationDdl from "./ddl/relation-ddl";
|
|
@@ -30,18 +30,18 @@ import type { ForeignKeyBuilder } from "./schema/factory/relation-builder";
|
|
|
30
30
|
import type { IndexBuilder } from "./schema/factory/index-builder";
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
* DbContext
|
|
33
|
+
* DbContext 인스턴스 팩토리
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
35
|
+
* DbContextDef (정의)와 DbContextExecutor (실행기)를 받아
|
|
36
|
+
* queryable 접근자, DDL 메서드, 연결/트랜잭션 관리를 포함한
|
|
37
|
+
* 완전한 DbContext 인스턴스를 생성한다
|
|
38
38
|
*
|
|
39
|
-
* @param def -
|
|
40
|
-
* @param executor -
|
|
41
|
-
* @param opt -
|
|
42
|
-
* @param opt.database -
|
|
43
|
-
* @param opt.schema -
|
|
44
|
-
* @returns
|
|
39
|
+
* @param def - defineDbContext()로 생성된 정의 객체
|
|
40
|
+
* @param executor - 쿼리 실행기 (NodeDbContextExecutor, ServiceDbContextExecutor 등)
|
|
41
|
+
* @param opt - 데이터베이스 옵션
|
|
42
|
+
* @param opt.database - 데이터베이스 이름
|
|
43
|
+
* @param opt.schema - schema 이름 (MSSQL: dbo, PostgreSQL: public)
|
|
44
|
+
* @returns 완전한 DbContext 인스턴스
|
|
45
45
|
*
|
|
46
46
|
* @example
|
|
47
47
|
* ```typescript
|
|
@@ -61,12 +61,12 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
61
61
|
executor: DbContextExecutor,
|
|
62
62
|
opt: { database: string; schema?: string },
|
|
63
63
|
): DbContextInstance<TDef> {
|
|
64
|
-
// ──
|
|
64
|
+
// ── 내부 상태 (클로저) ──
|
|
65
65
|
let aliasCounter = 0;
|
|
66
66
|
let status: DbContextStatus = "ready";
|
|
67
67
|
let relationsValidated = false;
|
|
68
68
|
|
|
69
|
-
// ── DbContextBase
|
|
69
|
+
// ── DbContextBase 구현 ──
|
|
70
70
|
const base: DbContextBase = {
|
|
71
71
|
get status() {
|
|
72
72
|
return status;
|
|
@@ -94,7 +94,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
94
94
|
status === "transact" &&
|
|
95
95
|
defs.some((d) => (DDL_TYPES as readonly string[]).includes(d.type))
|
|
96
96
|
) {
|
|
97
|
-
throw new Error("
|
|
97
|
+
throw new Error("TRANSACTION 상태에서는 DDL을 실행할 수 없습니다.");
|
|
98
98
|
}
|
|
99
99
|
return executor.executeDefs(defs, resultMetas);
|
|
100
100
|
},
|
|
@@ -112,9 +112,9 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
112
112
|
},
|
|
113
113
|
};
|
|
114
114
|
|
|
115
|
-
// ──
|
|
115
|
+
// ── 모든 요소를 하나의 객체로 합성 ──
|
|
116
116
|
const db = {
|
|
117
|
-
//
|
|
117
|
+
// base 속성 전개 (getter/setter는 별도 처리 필요)
|
|
118
118
|
get status() {
|
|
119
119
|
return base.status;
|
|
120
120
|
},
|
|
@@ -132,13 +132,13 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
132
132
|
executeDefs: base.executeDefs,
|
|
133
133
|
getQueryDefObjectName: base.getQueryDefObjectName,
|
|
134
134
|
|
|
135
|
-
//#region ==========
|
|
135
|
+
//#region ========== 연결 관리 ==========
|
|
136
136
|
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
138
|
+
* 트랜잭션 내에서 콜백 실행 (자동 커밋/롤백)
|
|
139
139
|
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
140
|
+
* 연결 -> 트랜잭션 시작 -> 콜백 실행 -> 커밋 -> 연결 종료
|
|
141
|
+
* 오류 발생 시 자동으로 롤백 후 연결 종료
|
|
142
142
|
*/
|
|
143
143
|
async connect<TResult>(
|
|
144
144
|
fn: () => Promise<TResult>,
|
|
@@ -191,9 +191,9 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
191
191
|
},
|
|
192
192
|
|
|
193
193
|
/**
|
|
194
|
-
*
|
|
194
|
+
* 트랜잭션 없이 연결 후 콜백 실행, 자동 종료
|
|
195
195
|
*
|
|
196
|
-
*
|
|
196
|
+
* 트랜잭션이 필요 없는 DDL 작업이나 읽기 작업에 사용
|
|
197
197
|
*/
|
|
198
198
|
async connectWithoutTransaction<TResult>(callback: () => Promise<TResult>): Promise<TResult> {
|
|
199
199
|
if (!relationsValidated) {
|
|
@@ -220,16 +220,16 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
220
220
|
},
|
|
221
221
|
|
|
222
222
|
/**
|
|
223
|
-
*
|
|
223
|
+
* 이미 연결된 상태에서 트랜잭션 시작 (자동 커밋/롤백)
|
|
224
224
|
*
|
|
225
|
-
*
|
|
225
|
+
* connectWithoutTransaction 내에서 부분적으로 트랜잭션이 필요할 때 사용
|
|
226
226
|
*/
|
|
227
227
|
async transaction<TResult>(
|
|
228
228
|
fn: () => Promise<TResult>,
|
|
229
229
|
isolationLevel?: IsolationLevel,
|
|
230
230
|
): Promise<TResult> {
|
|
231
231
|
if (status === "transact") {
|
|
232
|
-
throw new Error("
|
|
232
|
+
throw new Error("이미 TRANSACTION 상태입니다.");
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
await executor.beginTransaction(isolationLevel);
|
|
@@ -253,7 +253,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
253
253
|
} else {
|
|
254
254
|
throw err1;
|
|
255
255
|
}
|
|
256
|
-
//
|
|
256
|
+
// NO_ACTIVE_TRANSACTION 오류이면 무시하고 원래 오류를 던짐
|
|
257
257
|
status = "connect";
|
|
258
258
|
}
|
|
259
259
|
throw err;
|
|
@@ -264,7 +264,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
264
264
|
|
|
265
265
|
//#endregion
|
|
266
266
|
|
|
267
|
-
//#region ========== DDL
|
|
267
|
+
//#region ========== DDL 실행 메서드 ==========
|
|
268
268
|
|
|
269
269
|
async createTable(table: TableBuilder<any, any>): Promise<void> {
|
|
270
270
|
await base.executeDefs([tableDdl.getCreateTableQueryDef(base, table)]);
|
|
@@ -347,7 +347,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
347
347
|
|
|
348
348
|
//#endregion
|
|
349
349
|
|
|
350
|
-
//#region ========== DDL QueryDef
|
|
350
|
+
//#region ========== DDL QueryDef 생성기 ==========
|
|
351
351
|
|
|
352
352
|
getCreateTableQueryDef: (table: TableBuilder<any, any>) =>
|
|
353
353
|
tableDdl.getCreateTableQueryDef(base, table),
|
|
@@ -383,7 +383,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
383
383
|
|
|
384
384
|
//#endregion
|
|
385
385
|
|
|
386
|
-
//#region ==========
|
|
386
|
+
//#region ========== 초기화 ==========
|
|
387
387
|
|
|
388
388
|
async initialize(options?: { dbs?: string[]; force?: boolean }): Promise<void> {
|
|
389
389
|
await initializeImpl(db as any, def, options);
|
|
@@ -392,7 +392,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
392
392
|
//#endregion
|
|
393
393
|
};
|
|
394
394
|
|
|
395
|
-
// ──
|
|
395
|
+
// ── Queryable 접근자 추가 ──
|
|
396
396
|
for (const [key, tableOrView] of Object.entries(def.meta.tables)) {
|
|
397
397
|
(db as any)[key] = queryable(db as any, tableOrView as TableBuilder<any, any>);
|
|
398
398
|
}
|
|
@@ -400,7 +400,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
400
400
|
(db as any)[key] = queryable(db as any, view as ViewBuilder<any, any, any>);
|
|
401
401
|
}
|
|
402
402
|
|
|
403
|
-
// ──
|
|
403
|
+
// ── Executable 접근자 추가 ──
|
|
404
404
|
for (const [key, proc] of Object.entries(def.meta.procedures)) {
|
|
405
405
|
(db as any)[key] = executable(base, proc as ProcedureBuilder<any, any>);
|
|
406
406
|
}
|
package/src/ddl/column-ddl.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
} from "../types/query-def";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* ADD COLUMN QueryDef 생성
|
|
12
12
|
*/
|
|
13
13
|
export function getAddColumnQueryDef(
|
|
14
14
|
table: QueryDefObjectName,
|
|
@@ -29,7 +29,7 @@ export function getAddColumnQueryDef(
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* DROP COLUMN QueryDef 생성
|
|
33
33
|
*/
|
|
34
34
|
export function getDropColumnQueryDef(
|
|
35
35
|
table: QueryDefObjectName,
|
|
@@ -39,7 +39,7 @@ export function getDropColumnQueryDef(
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* MODIFY COLUMN QueryDef 생성
|
|
43
43
|
*/
|
|
44
44
|
export function getModifyColumnQueryDef(
|
|
45
45
|
table: QueryDefObjectName,
|
|
@@ -60,7 +60,7 @@ export function getModifyColumnQueryDef(
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
|
-
*
|
|
63
|
+
* RENAME COLUMN QueryDef 생성
|
|
64
64
|
*/
|
|
65
65
|
export function getRenameColumnQueryDef(
|
|
66
66
|
table: QueryDefObjectName,
|
package/src/ddl/initialize.ts
CHANGED
|
@@ -15,24 +15,24 @@ import { getAddForeignKeyQueryDef, getAddIndexQueryDef } from "./relation-ddl";
|
|
|
15
15
|
import { getClearSchemaQueryDef, getSchemaExistsQueryDef } from "./schema-ddl";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Code First
|
|
18
|
+
* Code First 데이터베이스 초기화
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* DbContext에 정의된 Table/View/Procedure를 데이터베이스에 생성하고
|
|
21
|
+
* migration을 적용한다
|
|
22
22
|
*
|
|
23
|
-
* @param db - DbContext
|
|
24
|
-
* @param def - DbContext
|
|
25
|
-
* @param options -
|
|
26
|
-
* @param options.dbs -
|
|
27
|
-
* @param options.force -
|
|
28
|
-
* @throws {Error}
|
|
29
|
-
* @throws {Error}
|
|
23
|
+
* @param db - DbContext 인스턴스
|
|
24
|
+
* @param def - DbContext 정의
|
|
25
|
+
* @param options - 초기화 옵션
|
|
26
|
+
* @param options.dbs - 초기화 대상 데이터베이스 목록 (미지정 시 현재 데이터베이스)
|
|
27
|
+
* @param options.force - true이면 기존 schema를 삭제하고 모두 재생성
|
|
28
|
+
* @throws {Error} 초기화할 데이터베이스가 없을 때
|
|
29
|
+
* @throws {Error} 지정된 데이터베이스가 존재하지 않을 때
|
|
30
30
|
*
|
|
31
|
-
*
|
|
32
|
-
* - **force=true**: clearSchema →
|
|
33
|
-
* - **force=false** (
|
|
34
|
-
* -
|
|
35
|
-
* - _Migration
|
|
31
|
+
* 동작:
|
|
32
|
+
* - **force=true**: clearSchema → 전체 생성 → 모든 migration을 "적용됨"으로 등록
|
|
33
|
+
* - **force=false** (기본값):
|
|
34
|
+
* - _Migration 테이블 없음: 전체 생성 + 모든 migration 등록
|
|
35
|
+
* - _Migration 테이블 있음: 미적용 migration만 실행
|
|
36
36
|
*/
|
|
37
37
|
export async function initialize(
|
|
38
38
|
db: DbContextBase & DbContextDdlMethods & { _migration: () => Queryable<{ code: string }, any> },
|
|
@@ -41,55 +41,55 @@ export async function initialize(
|
|
|
41
41
|
): Promise<void> {
|
|
42
42
|
const dbNames = options?.dbs ?? (db.database !== undefined ? [db.database] : []);
|
|
43
43
|
if (dbNames.length < 1) {
|
|
44
|
-
throw new Error("
|
|
44
|
+
throw new Error("초기화할 데이터베이스가 없습니다.");
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
const force = options?.force ?? false;
|
|
48
48
|
|
|
49
|
-
// 1.
|
|
49
|
+
// 1. DB 존재 여부 확인
|
|
50
50
|
for (const dbName of dbNames) {
|
|
51
51
|
const schemaExistsDef = getSchemaExistsQueryDef(dbName, db.schema);
|
|
52
52
|
const result = await db.executeDefs([schemaExistsDef]);
|
|
53
53
|
const schemaExists = result[0].length > 0;
|
|
54
54
|
if (!schemaExists) {
|
|
55
|
-
throw new Error(
|
|
55
|
+
throw new Error(`데이터베이스 '${dbName}'이(가) 존재하지 않습니다.`);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
if (force) {
|
|
60
|
-
// 2. force:
|
|
60
|
+
// 2. force: 모든 DB 초기화
|
|
61
61
|
for (const dbName of dbNames) {
|
|
62
62
|
const clearDef = getClearSchemaQueryDef({ database: dbName, schema: db.schema });
|
|
63
63
|
await db.executeDefs([clearDef]);
|
|
64
64
|
}
|
|
65
65
|
await createAllObjects(db, def);
|
|
66
66
|
|
|
67
|
-
//
|
|
67
|
+
// 모든 migration을 "적용됨"으로 등록
|
|
68
68
|
if (def.meta.migrations.length > 0) {
|
|
69
69
|
await db._migration().insert(def.meta.migrations.map((m) => ({ code: m.name })));
|
|
70
70
|
}
|
|
71
71
|
} else {
|
|
72
|
-
// 3. Migration
|
|
72
|
+
// 3. Migration 기반 초기화
|
|
73
73
|
let appliedMigrations: { code: string }[] | undefined;
|
|
74
74
|
try {
|
|
75
75
|
appliedMigrations = await db._migration().execute();
|
|
76
76
|
} catch (err) {
|
|
77
|
-
//
|
|
77
|
+
// 테이블 없음 = 새 환경
|
|
78
78
|
if (!isTableNotExistsError(err)) {
|
|
79
79
|
throw err;
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
if (appliedMigrations == null) {
|
|
84
|
-
//
|
|
84
|
+
// 새 환경: 전체 생성
|
|
85
85
|
await createAllObjects(db, def);
|
|
86
86
|
|
|
87
|
-
//
|
|
87
|
+
// 모든 migration을 "적용됨"으로 등록
|
|
88
88
|
if (def.meta.migrations.length > 0) {
|
|
89
89
|
await db._migration().insert(def.meta.migrations.map((m) => ({ code: m.name })));
|
|
90
90
|
}
|
|
91
91
|
} else {
|
|
92
|
-
//
|
|
92
|
+
// 기존 환경: 미적용 migration만 실행
|
|
93
93
|
const appliedCodes = new Set(appliedMigrations.map((m) => m.code));
|
|
94
94
|
const pendingMigrations = def.meta.migrations.filter((m) => !appliedCodes.has(m.name));
|
|
95
95
|
|
|
@@ -102,13 +102,13 @@ export async function initialize(
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
|
-
*
|
|
105
|
+
* 모든 객체 생성 (table/view/procedure/FK/index)
|
|
106
106
|
*/
|
|
107
107
|
async function createAllObjects(
|
|
108
108
|
db: DbContextBase,
|
|
109
109
|
def: DbContextDef<any, any, any>,
|
|
110
110
|
): Promise<void> {
|
|
111
|
-
// 1.
|
|
111
|
+
// 1. Table/View/Procedure 생성
|
|
112
112
|
const builders = getBuilders(def);
|
|
113
113
|
const createDefs: QueryDef[] = [];
|
|
114
114
|
for (const builder of builders) {
|
|
@@ -118,7 +118,7 @@ async function createAllObjects(
|
|
|
118
118
|
await db.executeDefs(createDefs);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
// 2.
|
|
121
|
+
// 2. FK 생성 (TableBuilder만)
|
|
122
122
|
const tables = builders.filter((b) => b instanceof TableBuilder);
|
|
123
123
|
const addFkDefs: QueryDef[] = [];
|
|
124
124
|
for (const table of tables) {
|
|
@@ -136,7 +136,7 @@ async function createAllObjects(
|
|
|
136
136
|
await db.executeDefs(addFkDefs);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
// 3.
|
|
139
|
+
// 3. Index 생성 (TableBuilder만)
|
|
140
140
|
const createIndexDefs: QueryDef[] = [];
|
|
141
141
|
for (const table of tables) {
|
|
142
142
|
const indexes = table.meta.indexes;
|
|
@@ -153,7 +153,7 @@ async function createAllObjects(
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
/**
|
|
156
|
-
*
|
|
156
|
+
* DbContext에서 모든 builder 수집 (Table/View/Procedure)
|
|
157
157
|
*/
|
|
158
158
|
function getBuilders(
|
|
159
159
|
def: DbContextDef<any, any, any>,
|
|
@@ -186,8 +186,8 @@ function getBuilders(
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
/**
|
|
189
|
-
*
|
|
190
|
-
* -
|
|
189
|
+
* ForeignKeyTarget/RelationKeyTarget 관계 검증
|
|
190
|
+
* - targetTableFn()이 반환하는 테이블에 relationName과 일치하는 FK/RelationKey가 있는지 확인
|
|
191
191
|
*/
|
|
192
192
|
export function validateRelations(def: DbContextDef<any, any, any>): void {
|
|
193
193
|
const builders = getBuilders(def);
|
|
@@ -211,8 +211,8 @@ export function validateRelations(def: DbContextDef<any, any, any>): void {
|
|
|
211
211
|
|
|
212
212
|
if (!(fkRel instanceof ForeignKeyBuilder) && !(fkRel instanceof RelationKeyBuilder)) {
|
|
213
213
|
throw new Error(
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
`유효하지 않은 관계 대상: ${table.meta.name}.${relName}이(가) 참조하는 '${fkRelName}'은(는) ` +
|
|
215
|
+
`${targetTable.meta.name}에서 유효한 ForeignKey/RelationKey가 아닙니다.`,
|
|
216
216
|
);
|
|
217
217
|
}
|
|
218
218
|
}
|
|
@@ -220,9 +220,9 @@ export function validateRelations(def: DbContextDef<any, any, any>): void {
|
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
/**
|
|
223
|
-
*
|
|
223
|
+
* 오류가 테이블 미존재를 나타내는지 확인
|
|
224
224
|
*
|
|
225
|
-
* DBMS
|
|
225
|
+
* DBMS별 오류 코드/메시지 패턴:
|
|
226
226
|
* - MySQL: errno 1146 (ER_NO_SUCH_TABLE), "Table 'xxx' doesn't exist"
|
|
227
227
|
* - MSSQL: number 208, "Invalid object name 'xxx'"
|
|
228
228
|
* - PostgreSQL: code "42P01", "relation \"xxx\" does not exist"
|
|
@@ -230,13 +230,13 @@ export function validateRelations(def: DbContextDef<any, any, any>): void {
|
|
|
230
230
|
function isTableNotExistsError(err: unknown): boolean {
|
|
231
231
|
if (err == null) return false;
|
|
232
232
|
|
|
233
|
-
//
|
|
233
|
+
// 오류 코드를 먼저 확인 (다국어 환경에서도 안정적)
|
|
234
234
|
const errObj = err as Record<string, unknown>;
|
|
235
235
|
if (errObj["errno"] === 1146) return true; // MySQL ER_NO_SUCH_TABLE
|
|
236
236
|
if (errObj["number"] === 208) return true; // MSSQL
|
|
237
237
|
if (errObj["code"] === "42P01") return true; // PostgreSQL
|
|
238
238
|
|
|
239
|
-
//
|
|
239
|
+
// 폴백: 메시지 매칭 (다국어 환경에서는 신뢰할 수 없을 수 있음)
|
|
240
240
|
const message = err instanceof Error ? err.message : String(err);
|
|
241
241
|
const lowerMessage = message.toLowerCase();
|
|
242
242
|
|
package/src/ddl/relation-ddl.ts
CHANGED
|
@@ -13,21 +13,21 @@ import { getMatchedPrimaryKeys } from "../exec/queryable";
|
|
|
13
13
|
import { getQueryDefObjectName } from "./table-ddl";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* DROP PRIMARY KEY QueryDef 생성
|
|
17
17
|
*/
|
|
18
18
|
export function getDropPrimaryKeyQueryDef(table: QueryDefObjectName): DropPrimaryKeyQueryDef {
|
|
19
19
|
return { type: "dropPrimaryKey", table };
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* ADD PRIMARY KEY QueryDef 생성
|
|
24
24
|
*/
|
|
25
25
|
export function getAddPrimaryKeyQueryDef(table: QueryDefObjectName, columns: string[]): AddPrimaryKeyQueryDef {
|
|
26
26
|
return { type: "addPrimaryKey", table, columns };
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* ADD FOREIGN KEY QueryDef 생성
|
|
31
31
|
*/
|
|
32
32
|
export function getAddForeignKeyQueryDef(
|
|
33
33
|
db: DbContextBase,
|
|
@@ -52,7 +52,7 @@ export function getAddForeignKeyQueryDef(
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
* ADD INDEX QueryDef
|
|
55
|
+
* ADD INDEX QueryDef 생성
|
|
56
56
|
*/
|
|
57
57
|
export function getAddIndexQueryDef(
|
|
58
58
|
table: QueryDefObjectName,
|
|
@@ -75,14 +75,14 @@ export function getAddIndexQueryDef(
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
|
-
* DROP FOREIGN KEY QueryDef
|
|
78
|
+
* DROP FOREIGN KEY QueryDef 생성
|
|
79
79
|
*/
|
|
80
80
|
export function getDropForeignKeyQueryDef(table: QueryDefObjectName, relationName: string): DropForeignKeyQueryDef {
|
|
81
81
|
return { type: "dropForeignKey", table, foreignKey: `FK_${table.name}_${relationName}` };
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
* DROP INDEX QueryDef
|
|
85
|
+
* DROP INDEX QueryDef 생성
|
|
86
86
|
*/
|
|
87
87
|
export function getDropIndexQueryDef(table: QueryDefObjectName, columns: string[]): DropIndexQueryDef {
|
|
88
88
|
return { type: "dropIndex", table, index: `IDX_${table.name}_${columns.join("_")}` };
|
package/src/ddl/schema-ddl.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
} from "../types/query-def";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* CLEAR SCHEMA QueryDef 생성
|
|
11
11
|
*/
|
|
12
12
|
export function getClearSchemaQueryDef(params: {
|
|
13
13
|
database: string;
|
|
@@ -17,21 +17,21 @@ export function getClearSchemaQueryDef(params: {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* SCHEMA EXISTS QueryDef 생성
|
|
21
21
|
*/
|
|
22
22
|
export function getSchemaExistsQueryDef(database: string, schema?: string): SchemaExistsQueryDef {
|
|
23
23
|
return { type: "schemaExists", database, schema };
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* TRUNCATE TABLE QueryDef 생성
|
|
28
28
|
*/
|
|
29
29
|
export function getTruncateQueryDef(table: QueryDefObjectName): TruncateQueryDef {
|
|
30
30
|
return { type: "truncate", table };
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* SWITCH FK QueryDef 생성
|
|
35
35
|
*/
|
|
36
36
|
export function getSwitchFkQueryDef(
|
|
37
37
|
table: QueryDefObjectName,
|