@simplysm/orm-common 13.0.100 → 14.0.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/README.md +90 -147
- 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 +108 -108
- 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 +5 -5
- 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.d.ts +2 -2
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- 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 +5 -5
- 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.d.ts +10 -10
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- 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 +5 -5
- 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.d.ts +8 -8
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- 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 +99 -99
- 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.d.ts +21 -21
- 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.d.ts +11 -11
- package/dist/utils/result-parser.js +362 -221
- package/dist/utils/result-parser.js.map +1 -6
- package/docs/core.md +117 -145
- package/docs/expression.md +186 -203
- package/docs/query-builder.md +75 -42
- package/docs/queryable.md +189 -151
- package/docs/schema-builders.md +172 -283
- package/docs/types.md +229 -173
- package/package.json +7 -5
- 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 +152 -152
- package/src/exec/search-parser.ts +50 -50
- package/src/expr/expr-unit.ts +4 -4
- package/src/expr/expr.ts +118 -118
- 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 +28 -28
- package/src/query-builder/mssql/mssql-query-builder.ts +37 -37
- package/src/query-builder/mysql/mysql-expr-renderer.ts +29 -29
- package/src/query-builder/mysql/mysql-query-builder.ts +70 -70
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +22 -22
- package/src/query-builder/postgresql/postgresql-query-builder.ts +54 -54
- 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 +102 -102
- package/src/schema/procedure-builder.ts +52 -52
- package/src/schema/table-builder.ts +56 -56
- package/src/schema/view-builder.ts +47 -47
- package/src/types/column.ts +24 -24
- 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 +88 -88
- 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
package/dist/ddl/column-ddl.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { ColumnBuilder } from "../schema/factory/column-builder";
|
|
2
2
|
import type { QueryDefObjectName, AddColumnQueryDef, DropColumnQueryDef, ModifyColumnQueryDef, RenameColumnQueryDef } from "../types/query-def";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* ADD COLUMN QueryDef 생성
|
|
5
5
|
*/
|
|
6
6
|
export declare function getAddColumnQueryDef(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): AddColumnQueryDef;
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* DROP COLUMN QueryDef 생성
|
|
9
9
|
*/
|
|
10
10
|
export declare function getDropColumnQueryDef(table: QueryDefObjectName, column: string): DropColumnQueryDef;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* MODIFY COLUMN QueryDef 생성
|
|
13
13
|
*/
|
|
14
14
|
export declare function getModifyColumnQueryDef(table: QueryDefObjectName, columnName: string, column: ColumnBuilder<any, any>): ModifyColumnQueryDef;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* RENAME COLUMN QueryDef 생성
|
|
17
17
|
*/
|
|
18
18
|
export declare function getRenameColumnQueryDef(table: QueryDefObjectName, column: string, newName: string): RenameColumnQueryDef;
|
|
19
19
|
//# sourceMappingURL=column-ddl.d.ts.map
|
package/dist/ddl/column-ddl.js
CHANGED
|
@@ -1,39 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
/**
|
|
2
|
+
* ADD COLUMN QueryDef 생성
|
|
3
|
+
*/
|
|
4
|
+
export function getAddColumnQueryDef(table, columnName, column) {
|
|
5
|
+
return {
|
|
6
|
+
type: "addColumn",
|
|
7
|
+
table,
|
|
8
|
+
column: {
|
|
9
|
+
name: columnName,
|
|
10
|
+
dataType: column.meta.dataType,
|
|
11
|
+
autoIncrement: column.meta.autoIncrement,
|
|
12
|
+
nullable: column.meta.nullable,
|
|
13
|
+
default: column.meta.default,
|
|
14
|
+
},
|
|
15
|
+
};
|
|
13
16
|
}
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
/**
|
|
18
|
+
* DROP COLUMN QueryDef 생성
|
|
19
|
+
*/
|
|
20
|
+
export function getDropColumnQueryDef(table, column) {
|
|
21
|
+
return { type: "dropColumn", table, column };
|
|
16
22
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
/**
|
|
24
|
+
* MODIFY COLUMN QueryDef 생성
|
|
25
|
+
*/
|
|
26
|
+
export function getModifyColumnQueryDef(table, columnName, column) {
|
|
27
|
+
return {
|
|
28
|
+
type: "modifyColumn",
|
|
29
|
+
table,
|
|
30
|
+
column: {
|
|
31
|
+
name: columnName,
|
|
32
|
+
dataType: column.meta.dataType,
|
|
33
|
+
autoIncrement: column.meta.autoIncrement,
|
|
34
|
+
nullable: column.meta.nullable,
|
|
35
|
+
default: column.meta.default,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
29
38
|
}
|
|
30
|
-
|
|
31
|
-
|
|
39
|
+
/**
|
|
40
|
+
* RENAME COLUMN QueryDef 생성
|
|
41
|
+
*/
|
|
42
|
+
export function getRenameColumnQueryDef(table, column, newName) {
|
|
43
|
+
return { type: "renameColumn", table, column, newName };
|
|
32
44
|
}
|
|
33
|
-
|
|
34
|
-
getAddColumnQueryDef,
|
|
35
|
-
getDropColumnQueryDef,
|
|
36
|
-
getModifyColumnQueryDef,
|
|
37
|
-
getRenameColumnQueryDef
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=column-ddl.js.map
|
|
45
|
+
//# sourceMappingURL=column-ddl.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/ddl/column-ddl.ts"],
|
|
4
|
-
"mappings": "AAYO,SAAS,qBACd,OACA,YACA,QACmB;AACnB,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU,OAAO,KAAK;AAAA,MACtB,eAAe,OAAO,KAAK;AAAA,MAC3B,UAAU,OAAO,KAAK;AAAA,MACtB,SAAS,OAAO,KAAK;AAAA,IACvB;AAAA,EACF;AACF;AAKO,SAAS,sBACd,OACA,QACoB;AACpB,SAAO,EAAE,MAAM,cAAc,OAAO,OAAO;AAC7C;AAKO,SAAS,wBACd,OACA,YACA,QACsB;AACtB,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU,OAAO,KAAK;AAAA,MACtB,eAAe,OAAO,KAAK;AAAA,MAC3B,UAAU,OAAO,KAAK;AAAA,MACtB,SAAS,OAAO,KAAK;AAAA,IACvB;AAAA,EACF;AACF;AAKO,SAAS,wBACd,OACA,QACA,SACsB;AACtB,SAAO,EAAE,MAAM,gBAAgB,OAAO,QAAQ,QAAQ;AACxD;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"column-ddl.js","sourceRoot":"","sources":["..\\..\\src\\ddl\\column-ddl.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAyB,EACzB,UAAkB,EAClB,MAA+B;IAE/B,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK;QACL,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;YACxC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAyB,EACzB,MAAc;IAEd,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,UAAkB,EAClB,MAA+B;IAE/B,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK;QACL,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;YACxC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,MAAc,EACd,OAAe;IAEf,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC1D,CAAC"}
|
package/dist/ddl/initialize.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import type { DbContextBase, DbContextDef, DbContextDdlMethods } from "../types/db-context-def";
|
|
2
2
|
import type { Queryable } from "../exec/queryable";
|
|
3
3
|
/**
|
|
4
|
-
* Code First
|
|
4
|
+
* Code First 데이터베이스 초기화
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* DbContext에 정의된 Table/View/Procedure를 데이터베이스에 생성하고
|
|
7
|
+
* migration을 적용한다
|
|
8
8
|
*
|
|
9
|
-
* @param db - DbContext
|
|
10
|
-
* @param def - DbContext
|
|
11
|
-
* @param options -
|
|
12
|
-
* @param options.dbs -
|
|
13
|
-
* @param options.force -
|
|
14
|
-
* @throws {Error}
|
|
15
|
-
* @throws {Error}
|
|
9
|
+
* @param db - DbContext 인스턴스
|
|
10
|
+
* @param def - DbContext 정의
|
|
11
|
+
* @param options - 초기화 옵션
|
|
12
|
+
* @param options.dbs - 초기화 대상 데이터베이스 목록 (미지정 시 현재 데이터베이스)
|
|
13
|
+
* @param options.force - true이면 기존 schema를 삭제하고 모두 재생성
|
|
14
|
+
* @throws {Error} 초기화할 데이터베이스가 없을 때
|
|
15
|
+
* @throws {Error} 지정된 데이터베이스가 존재하지 않을 때
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* - **force=true**: clearSchema →
|
|
19
|
-
* - **force=false** (
|
|
20
|
-
* -
|
|
21
|
-
* - _Migration
|
|
17
|
+
* 동작:
|
|
18
|
+
* - **force=true**: clearSchema → 전체 생성 → 모든 migration을 "적용됨"으로 등록
|
|
19
|
+
* - **force=false** (기본값):
|
|
20
|
+
* - _Migration 테이블 없음: 전체 생성 + 모든 migration 등록
|
|
21
|
+
* - _Migration 테이블 있음: 미적용 migration만 실행
|
|
22
22
|
*/
|
|
23
23
|
export declare function initialize(db: DbContextBase & DbContextDdlMethods & {
|
|
24
24
|
_migration: () => Queryable<{
|
|
@@ -29,8 +29,8 @@ export declare function initialize(db: DbContextBase & DbContextDdlMethods & {
|
|
|
29
29
|
force?: boolean;
|
|
30
30
|
}): Promise<void>;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
* -
|
|
32
|
+
* ForeignKeyTarget/RelationKeyTarget 관계 검증
|
|
33
|
+
* - targetTableFn()이 반환하는 테이블에 relationName과 일치하는 FK/RelationKey가 있는지 확인
|
|
34
34
|
*/
|
|
35
35
|
export declare function validateRelations(def: DbContextDef<any, any, any>): void;
|
|
36
36
|
//# sourceMappingURL=initialize.d.ts.map
|
package/dist/ddl/initialize.js
CHANGED
|
@@ -1,157 +1,215 @@
|
|
|
1
1
|
import { TableBuilder } from "../schema/table-builder.js";
|
|
2
2
|
import { ViewBuilder } from "../schema/view-builder.js";
|
|
3
3
|
import { ProcedureBuilder } from "../schema/procedure-builder.js";
|
|
4
|
-
import {
|
|
5
|
-
ForeignKeyBuilder,
|
|
6
|
-
RelationKeyBuilder,
|
|
7
|
-
ForeignKeyTargetBuilder,
|
|
8
|
-
RelationKeyTargetBuilder
|
|
9
|
-
} from "../schema/factory/relation-builder.js";
|
|
4
|
+
import { ForeignKeyBuilder, RelationKeyBuilder, ForeignKeyTargetBuilder, RelationKeyTargetBuilder, } from "../schema/factory/relation-builder.js";
|
|
10
5
|
import { getCreateObjectQueryDef } from "./table-ddl.js";
|
|
11
6
|
import { getAddForeignKeyQueryDef, getAddIndexQueryDef } from "./relation-ddl.js";
|
|
12
7
|
import { getClearSchemaQueryDef, getSchemaExistsQueryDef } from "./schema-ddl.js";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Code First 데이터베이스 초기화
|
|
10
|
+
*
|
|
11
|
+
* DbContext에 정의된 Table/View/Procedure를 데이터베이스에 생성하고
|
|
12
|
+
* migration을 적용한다
|
|
13
|
+
*
|
|
14
|
+
* @param db - DbContext 인스턴스
|
|
15
|
+
* @param def - DbContext 정의
|
|
16
|
+
* @param options - 초기화 옵션
|
|
17
|
+
* @param options.dbs - 초기화 대상 데이터베이스 목록 (미지정 시 현재 데이터베이스)
|
|
18
|
+
* @param options.force - true이면 기존 schema를 삭제하고 모두 재생성
|
|
19
|
+
* @throws {Error} 초기화할 데이터베이스가 없을 때
|
|
20
|
+
* @throws {Error} 지정된 데이터베이스가 존재하지 않을 때
|
|
21
|
+
*
|
|
22
|
+
* 동작:
|
|
23
|
+
* - **force=true**: clearSchema → 전체 생성 → 모든 migration을 "적용됨"으로 등록
|
|
24
|
+
* - **force=false** (기본값):
|
|
25
|
+
* - _Migration 테이블 없음: 전체 생성 + 모든 migration 등록
|
|
26
|
+
* - _Migration 테이블 있음: 미적용 migration만 실행
|
|
27
|
+
*/
|
|
28
|
+
export async function initialize(db, def, options) {
|
|
29
|
+
const dbNames = options?.dbs ?? (db.database !== undefined ? [db.database] : []);
|
|
30
|
+
if (dbNames.length < 1) {
|
|
31
|
+
throw new Error("초기화할 데이터베이스가 없습니다.");
|
|
32
|
+
}
|
|
33
|
+
const force = options?.force ?? false;
|
|
34
|
+
// 1. DB 존재 여부 확인
|
|
28
35
|
for (const dbName of dbNames) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
36
|
+
const schemaExistsDef = getSchemaExistsQueryDef(dbName, db.schema);
|
|
37
|
+
const result = await db.executeDefs([schemaExistsDef]);
|
|
38
|
+
const schemaExists = result[0].length > 0;
|
|
39
|
+
if (!schemaExists) {
|
|
40
|
+
throw new Error(`데이터베이스 '${dbName}'이(가) 존재하지 않습니다.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (force) {
|
|
44
|
+
// 2. force: 모든 DB 초기화
|
|
45
|
+
for (const dbName of dbNames) {
|
|
46
|
+
const clearDef = getClearSchemaQueryDef({ database: dbName, schema: db.schema });
|
|
47
|
+
await db.executeDefs([clearDef]);
|
|
48
|
+
}
|
|
49
|
+
await createAllObjects(db, def);
|
|
50
|
+
// 모든 migration을 "적용됨"으로 등록
|
|
51
|
+
if (def.meta.migrations.length > 0) {
|
|
52
|
+
await db._migration().insert(def.meta.migrations.map((m) => ({ code: m.name })));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// 3. Migration 기반 초기화
|
|
57
|
+
let appliedMigrations;
|
|
58
|
+
try {
|
|
59
|
+
appliedMigrations = await db._migration().execute();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
// 테이블 없음 = 새 환경
|
|
63
|
+
if (!isTableNotExistsError(err)) {
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (appliedMigrations == null) {
|
|
68
|
+
// 새 환경: 전체 생성
|
|
69
|
+
await createAllObjects(db, def);
|
|
70
|
+
// 모든 migration을 "적용됨"으로 등록
|
|
71
|
+
if (def.meta.migrations.length > 0) {
|
|
72
|
+
await db._migration().insert(def.meta.migrations.map((m) => ({ code: m.name })));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// 기존 환경: 미적용 migration만 실행
|
|
77
|
+
const appliedCodes = new Set(appliedMigrations.map((m) => m.code));
|
|
78
|
+
const pendingMigrations = def.meta.migrations.filter((m) => !appliedCodes.has(m.name));
|
|
79
|
+
for (const migration of pendingMigrations) {
|
|
80
|
+
await migration.up(db);
|
|
81
|
+
await db._migration().insert([{ code: migration.name }]);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
59
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* 모든 객체 생성 (table/view/procedure/FK/index)
|
|
88
|
+
*/
|
|
60
89
|
async function createAllObjects(db, def) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
// 1. Table/View/Procedure 생성
|
|
91
|
+
const builders = getBuilders(def);
|
|
92
|
+
const createDefs = [];
|
|
93
|
+
for (const builder of builders) {
|
|
94
|
+
createDefs.push(getCreateObjectQueryDef(db, builder));
|
|
95
|
+
}
|
|
96
|
+
if (createDefs.length > 0) {
|
|
97
|
+
await db.executeDefs(createDefs);
|
|
98
|
+
}
|
|
99
|
+
// 2. FK 생성 (TableBuilder만)
|
|
100
|
+
const tables = builders.filter((b) => b instanceof TableBuilder);
|
|
101
|
+
const addFkDefs = [];
|
|
102
|
+
for (const table of tables) {
|
|
103
|
+
const relations = table.meta.relations;
|
|
104
|
+
if (relations == null)
|
|
105
|
+
continue;
|
|
106
|
+
const tableDef = db.getQueryDefObjectName(table);
|
|
107
|
+
for (const [relationName, relationDef] of Object.entries(relations)) {
|
|
108
|
+
if (!(relationDef instanceof ForeignKeyBuilder))
|
|
109
|
+
continue;
|
|
110
|
+
addFkDefs.push(getAddForeignKeyQueryDef(db, tableDef, relationName, relationDef));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (addFkDefs.length > 0) {
|
|
114
|
+
await db.executeDefs(addFkDefs);
|
|
115
|
+
}
|
|
116
|
+
// 3. Index 생성 (TableBuilder만)
|
|
117
|
+
const createIndexDefs = [];
|
|
118
|
+
for (const table of tables) {
|
|
119
|
+
const indexes = table.meta.indexes;
|
|
120
|
+
if (indexes == null || indexes.length === 0)
|
|
121
|
+
continue;
|
|
122
|
+
const indexTableDef = db.getQueryDefObjectName(table);
|
|
123
|
+
for (const indexBuilder of indexes) {
|
|
124
|
+
createIndexDefs.push(getAddIndexQueryDef(indexTableDef, indexBuilder));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (createIndexDefs.length > 0) {
|
|
128
|
+
await db.executeDefs(createIndexDefs);
|
|
129
|
+
}
|
|
95
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* DbContext에서 모든 builder 수집 (Table/View/Procedure)
|
|
133
|
+
*/
|
|
96
134
|
function getBuilders(def) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
135
|
+
const builders = [];
|
|
136
|
+
// Tables
|
|
137
|
+
const tables = Object.values(def.meta.tables);
|
|
138
|
+
for (const table of tables) {
|
|
139
|
+
builders.push(table);
|
|
140
|
+
}
|
|
141
|
+
// Views
|
|
142
|
+
const views = Object.values(def.meta.views);
|
|
143
|
+
for (const view of views) {
|
|
144
|
+
builders.push(view);
|
|
145
|
+
}
|
|
146
|
+
// Procedures
|
|
147
|
+
const procs = Object.values(def.meta.procedures);
|
|
148
|
+
for (const proc of procs) {
|
|
149
|
+
builders.push(proc);
|
|
150
|
+
}
|
|
151
|
+
return builders;
|
|
111
152
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
for (const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
153
|
+
/**
|
|
154
|
+
* ForeignKeyTarget/RelationKeyTarget 관계 검증
|
|
155
|
+
* - targetTableFn()이 반환하는 테이블에 relationName과 일치하는 FK/RelationKey가 있는지 확인
|
|
156
|
+
*/
|
|
157
|
+
export function validateRelations(def) {
|
|
158
|
+
const builders = getBuilders(def);
|
|
159
|
+
const tables = builders.filter((b) => b instanceof TableBuilder);
|
|
160
|
+
for (const table of tables) {
|
|
161
|
+
const relations = table.meta.relations;
|
|
162
|
+
if (relations == null)
|
|
163
|
+
continue;
|
|
164
|
+
for (const [relName, relDef] of Object.entries(relations)) {
|
|
165
|
+
if (!(relDef instanceof ForeignKeyTargetBuilder) &&
|
|
166
|
+
!(relDef instanceof RelationKeyTargetBuilder)) {
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const targetTable = relDef.meta.targetTableFn();
|
|
170
|
+
const fkRelName = relDef.meta.relationName;
|
|
171
|
+
const fkRel = targetTable.meta.relations?.[fkRelName];
|
|
172
|
+
if (!(fkRel instanceof ForeignKeyBuilder) && !(fkRel instanceof RelationKeyBuilder)) {
|
|
173
|
+
throw new Error(`유효하지 않은 관계 대상: ${table.meta.name}.${relName}이(가) 참조하는 '${fkRelName}'은(는) ` +
|
|
174
|
+
`${targetTable.meta.name}에서 유효한 ForeignKey/RelationKey가 아닙니다.`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
133
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* 오류가 테이블 미존재를 나타내는지 확인
|
|
181
|
+
*
|
|
182
|
+
* DBMS별 오류 코드/메시지 패턴:
|
|
183
|
+
* - MySQL: errno 1146 (ER_NO_SUCH_TABLE), "Table 'xxx' doesn't exist"
|
|
184
|
+
* - MSSQL: number 208, "Invalid object name 'xxx'"
|
|
185
|
+
* - PostgreSQL: code "42P01", "relation \"xxx\" does not exist"
|
|
186
|
+
*/
|
|
134
187
|
function isTableNotExistsError(err) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
188
|
+
if (err == null)
|
|
189
|
+
return false;
|
|
190
|
+
// 오류 코드를 먼저 확인 (다국어 환경에서도 안정적)
|
|
191
|
+
const errObj = err;
|
|
192
|
+
if (errObj["errno"] === 1146)
|
|
193
|
+
return true; // MySQL ER_NO_SUCH_TABLE
|
|
194
|
+
if (errObj["number"] === 208)
|
|
195
|
+
return true; // MSSQL
|
|
196
|
+
if (errObj["code"] === "42P01")
|
|
197
|
+
return true; // PostgreSQL
|
|
198
|
+
// 폴백: 메시지 매칭 (다국어 환경에서는 신뢰할 수 없을 수 있음)
|
|
199
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
200
|
+
const lowerMessage = message.toLowerCase();
|
|
201
|
+
// MySQL: Table 'xxx' doesn't exist
|
|
202
|
+
if (lowerMessage.includes("doesn't exist") && lowerMessage.includes("table")) {
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
// MSSQL: Invalid object name 'xxx'
|
|
206
|
+
if (lowerMessage.includes("invalid object name")) {
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
// PostgreSQL: relation "xxx" does not exist
|
|
210
|
+
if (lowerMessage.includes("does not exist") && lowerMessage.includes("relation")) {
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
152
214
|
}
|
|
153
|
-
|
|
154
|
-
initialize,
|
|
155
|
-
validateRelations
|
|
156
|
-
};
|
|
157
|
-
//# sourceMappingURL=initialize.js.map
|
|
215
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/ddl/initialize.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["..\\..\\src\\ddl\\initialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,27 +3,27 @@ import type { IndexBuilder } from "../schema/factory/index-builder";
|
|
|
3
3
|
import type { QueryDef, QueryDefObjectName, AddPrimaryKeyQueryDef, DropPrimaryKeyQueryDef, DropForeignKeyQueryDef, DropIndexQueryDef } from "../types/query-def";
|
|
4
4
|
import type { DbContextBase } from "../types/db-context-def";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* DROP PRIMARY KEY QueryDef 생성
|
|
7
7
|
*/
|
|
8
8
|
export declare function getDropPrimaryKeyQueryDef(table: QueryDefObjectName): DropPrimaryKeyQueryDef;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* ADD PRIMARY KEY QueryDef 생성
|
|
11
11
|
*/
|
|
12
12
|
export declare function getAddPrimaryKeyQueryDef(table: QueryDefObjectName, columns: string[]): AddPrimaryKeyQueryDef;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* ADD FOREIGN KEY QueryDef 생성
|
|
15
15
|
*/
|
|
16
16
|
export declare function getAddForeignKeyQueryDef(db: DbContextBase, table: QueryDefObjectName, relationName: string, relationDef: ForeignKeyBuilder<any, any>): QueryDef;
|
|
17
17
|
/**
|
|
18
|
-
* ADD INDEX QueryDef
|
|
18
|
+
* ADD INDEX QueryDef 생성
|
|
19
19
|
*/
|
|
20
20
|
export declare function getAddIndexQueryDef(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): QueryDef;
|
|
21
21
|
/**
|
|
22
|
-
* DROP FOREIGN KEY QueryDef
|
|
22
|
+
* DROP FOREIGN KEY QueryDef 생성
|
|
23
23
|
*/
|
|
24
24
|
export declare function getDropForeignKeyQueryDef(table: QueryDefObjectName, relationName: string): DropForeignKeyQueryDef;
|
|
25
25
|
/**
|
|
26
|
-
* DROP INDEX QueryDef
|
|
26
|
+
* DROP INDEX QueryDef 생성
|
|
27
27
|
*/
|
|
28
28
|
export declare function getDropIndexQueryDef(table: QueryDefObjectName, columns: string[]): DropIndexQueryDef;
|
|
29
29
|
//# sourceMappingURL=relation-ddl.d.ts.map
|