dbgraph 0.1.3 → 0.1.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/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/introspect/base.d.ts.map +1 -1
- package/dist/introspect/base.js +8 -1
- package/dist/introspect/base.js.map +1 -1
- package/dist/introspect/connection.d.ts +5 -0
- package/dist/introspect/connection.d.ts.map +1 -1
- package/dist/introspect/connection.js +118 -1
- package/dist/introspect/connection.js.map +1 -1
- package/dist/introspect/index.d.ts +2 -0
- package/dist/introspect/index.d.ts.map +1 -1
- package/dist/introspect/index.js +9 -1
- package/dist/introspect/index.js.map +1 -1
- package/dist/introspect/mongodb.d.ts +47 -0
- package/dist/introspect/mongodb.d.ts.map +1 -0
- package/dist/introspect/mongodb.js +255 -0
- package/dist/introspect/mongodb.js.map +1 -0
- package/dist/introspect/mssql.d.ts +67 -0
- package/dist/introspect/mssql.d.ts.map +1 -0
- package/dist/introspect/mssql.js +399 -0
- package/dist/introspect/mssql.js.map +1 -0
- package/dist/introspect/postgres.d.ts.map +1 -1
- package/dist/introspect/postgres.js +88 -82
- package/dist/introspect/postgres.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/introspect/mongodb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MSSQL Introspector
|
|
3
|
+
*
|
|
4
|
+
* Extracts schemas, tables, columns, primary keys, foreign keys,
|
|
5
|
+
* indexes, and views from a Microsoft SQL Server database using
|
|
6
|
+
* INFORMATION_SCHEMA and sys catalog views.
|
|
7
|
+
*
|
|
8
|
+
* Connection: uses `connection.ts` which wraps the `mssql` package.
|
|
9
|
+
* The driver import is guarded so a missing `mssql` is reported at
|
|
10
|
+
* connect() time, not at module load time.
|
|
11
|
+
*
|
|
12
|
+
* MSSQL-specific metadata extracted:
|
|
13
|
+
* - Identity columns (via COLUMNPROPERTY)
|
|
14
|
+
* - Index metadata from sys.indexes / sys.index_columns / sys.columns
|
|
15
|
+
* - Schema-based organization (like PostgreSQL, unlike MySQL)
|
|
16
|
+
*/
|
|
17
|
+
import { IntrospectResult, DbConnectionConfig } from '../types';
|
|
18
|
+
import { BaseIntrospector } from './base';
|
|
19
|
+
export declare class MSSQLIntrospector extends BaseIntrospector {
|
|
20
|
+
constructor(config: DbConnectionConfig);
|
|
21
|
+
/**
|
|
22
|
+
* Full schema introspection pipeline.
|
|
23
|
+
*
|
|
24
|
+
* 1. Connect to the MSSQL database
|
|
25
|
+
* 2. Query schemas and filter by config.schemas if provided
|
|
26
|
+
* 3. Query all structural metadata in parallel
|
|
27
|
+
* 4. Build Node[] + Edge[]
|
|
28
|
+
* 5. Close connection and return the result
|
|
29
|
+
*/
|
|
30
|
+
extractAll(): Promise<IntrospectResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Query: non-system schemas.
|
|
33
|
+
*/
|
|
34
|
+
private querySchemas;
|
|
35
|
+
/**
|
|
36
|
+
* Query: tables and views (BASE TABLE or VIEW).
|
|
37
|
+
*/
|
|
38
|
+
private queryTables;
|
|
39
|
+
/**
|
|
40
|
+
* Query: columns with identity detection via COLUMNPROPERTY.
|
|
41
|
+
*/
|
|
42
|
+
private queryColumns;
|
|
43
|
+
/**
|
|
44
|
+
* Query: columns that are part of a PRIMARY KEY constraint.
|
|
45
|
+
*/
|
|
46
|
+
private queryPrimaryKeys;
|
|
47
|
+
/**
|
|
48
|
+
* Query: foreign key columns + referenced table/column + referential actions.
|
|
49
|
+
*
|
|
50
|
+
* Uses the standard INFORMATION_SCHEMA 4-table join:
|
|
51
|
+
* TABLE_CONSTRAINTS + KEY_COLUMN_USAGE + CONSTRAINT_COLUMN_USAGE + REFERENTIAL_CONSTRAINTS
|
|
52
|
+
*/
|
|
53
|
+
private queryForeignKeys;
|
|
54
|
+
/**
|
|
55
|
+
* Query: index columns from sys.indexes / sys.index_columns / sys.columns.
|
|
56
|
+
*
|
|
57
|
+
* MSSQL does NOT expose index metadata in INFORMATION_SCHEMA, so we query
|
|
58
|
+
* the sys catalog views instead. Returns one row per (index × column),
|
|
59
|
+
* grouped later in the build step.
|
|
60
|
+
*/
|
|
61
|
+
private queryIndexes;
|
|
62
|
+
/**
|
|
63
|
+
* Query: view definitions.
|
|
64
|
+
*/
|
|
65
|
+
private queryViews;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=mssql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mssql.d.ts","sourceRoot":"","sources":["../../src/introspect/mssql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAKnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAuE1C,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,MAAM,EAAE,kBAAkB;IAItC;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAyP7C;;OAEG;YACW,YAAY;IAU1B;;OAEG;YACW,WAAW;IAkBzB;;OAEG;YACW,YAAY;IAyB1B;;OAEG;YACW,gBAAgB;IAyB9B;;;;;OAKG;YACW,gBAAgB;IAoC9B;;;;;;OAMG;YACW,YAAY;IAyB1B;;OAEG;YACW,UAAU;CAgBzB"}
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MSSQL Introspector
|
|
4
|
+
*
|
|
5
|
+
* Extracts schemas, tables, columns, primary keys, foreign keys,
|
|
6
|
+
* indexes, and views from a Microsoft SQL Server database using
|
|
7
|
+
* INFORMATION_SCHEMA and sys catalog views.
|
|
8
|
+
*
|
|
9
|
+
* Connection: uses `connection.ts` which wraps the `mssql` package.
|
|
10
|
+
* The driver import is guarded so a missing `mssql` is reported at
|
|
11
|
+
* connect() time, not at module load time.
|
|
12
|
+
*
|
|
13
|
+
* MSSQL-specific metadata extracted:
|
|
14
|
+
* - Identity columns (via COLUMNPROPERTY)
|
|
15
|
+
* - Index metadata from sys.indexes / sys.index_columns / sys.columns
|
|
16
|
+
* - Schema-based organization (like PostgreSQL, unlike MySQL)
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.MSSQLIntrospector = void 0;
|
|
20
|
+
const base_1 = require("./base");
|
|
21
|
+
const connection_1 = require("./connection");
|
|
22
|
+
const utils_1 = require("../utils");
|
|
23
|
+
// =============================================================================
|
|
24
|
+
// MSSQLIntrospector
|
|
25
|
+
// =============================================================================
|
|
26
|
+
class MSSQLIntrospector extends base_1.BaseIntrospector {
|
|
27
|
+
constructor(config) {
|
|
28
|
+
super(config);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Full schema introspection pipeline.
|
|
32
|
+
*
|
|
33
|
+
* 1. Connect to the MSSQL database
|
|
34
|
+
* 2. Query schemas and filter by config.schemas if provided
|
|
35
|
+
* 3. Query all structural metadata in parallel
|
|
36
|
+
* 4. Build Node[] + Edge[]
|
|
37
|
+
* 5. Close connection and return the result
|
|
38
|
+
*/
|
|
39
|
+
async extractAll() {
|
|
40
|
+
const startTime = Date.now();
|
|
41
|
+
const errors = [];
|
|
42
|
+
const nodes = [];
|
|
43
|
+
const edges = [];
|
|
44
|
+
let conn;
|
|
45
|
+
try {
|
|
46
|
+
conn = await (0, connection_1.createConnection)(this.config);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
return {
|
|
50
|
+
nodes: [],
|
|
51
|
+
edges: [],
|
|
52
|
+
durationMs: Date.now() - startTime,
|
|
53
|
+
errors: [err.message],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
// ----- 1. Determine which schemas to introspect -----
|
|
58
|
+
// schemas: undefined → no filter (all schemas)
|
|
59
|
+
// schemas: ["*"] → explicit "all schemas" (no filter)
|
|
60
|
+
// schemas: ["public"] → filter specific schemas
|
|
61
|
+
// schemas: [] → introspect nothing
|
|
62
|
+
const hasFilter = this.config.schemas !== undefined && !this.config.schemas.includes('*');
|
|
63
|
+
const schemaFilter = new Set(this.config.schemas ?? []);
|
|
64
|
+
const schemas = await this.querySchemas(conn);
|
|
65
|
+
// Apply user-configured schema filter
|
|
66
|
+
const targetSchemas = hasFilter
|
|
67
|
+
? schemas.filter((r) => schemaFilter.has(r.schema_name))
|
|
68
|
+
: schemas;
|
|
69
|
+
if (targetSchemas.length === 0) {
|
|
70
|
+
errors.push(hasFilter
|
|
71
|
+
? (this.config.schemas.length > 0
|
|
72
|
+
? `No matching schemas found. Filter: ${this.config.schemas.join(', ')}`
|
|
73
|
+
: 'No schemas to introspect (schemas: [])')
|
|
74
|
+
: 'No non-system schemas found');
|
|
75
|
+
return { nodes, edges, durationMs: Date.now() - startTime, errors };
|
|
76
|
+
}
|
|
77
|
+
const schemaNames = targetSchemas.map((r) => r.schema_name);
|
|
78
|
+
// ----- 2. Fetch all raw metadata in parallel -----
|
|
79
|
+
const [tables, columns, pks, fks, indexes, views] = await Promise.all([
|
|
80
|
+
this.queryTables(conn, schemaNames),
|
|
81
|
+
this.queryColumns(conn, schemaNames),
|
|
82
|
+
this.queryPrimaryKeys(conn, schemaNames),
|
|
83
|
+
this.queryForeignKeys(conn, schemaNames),
|
|
84
|
+
this.queryIndexes(conn, schemaNames),
|
|
85
|
+
this.queryViews(conn, schemaNames),
|
|
86
|
+
]);
|
|
87
|
+
// ----- 3. Build schema nodes -----
|
|
88
|
+
const schemaNodeById = new Map(); // key = schema name
|
|
89
|
+
for (const s of targetSchemas) {
|
|
90
|
+
const qual = this.qn(s.schema_name);
|
|
91
|
+
const fp = this.schemaFilePath(s.schema_name);
|
|
92
|
+
const node = this.makeNode('schema', s.schema_name, qual, fp);
|
|
93
|
+
nodes.push(node);
|
|
94
|
+
schemaNodeById.set(s.schema_name, node);
|
|
95
|
+
}
|
|
96
|
+
// ----- 4. Build table nodes + contains edges (schema → table) -----
|
|
97
|
+
const tableNodeByKey = new Map(); // key = schema.table
|
|
98
|
+
for (const t of tables) {
|
|
99
|
+
const schemaNode = schemaNodeById.get(t.schema_name);
|
|
100
|
+
if (!schemaNode)
|
|
101
|
+
continue;
|
|
102
|
+
const key = this.tableKey(t.schema_name, t.table_name);
|
|
103
|
+
const kind = t.table_type === 'VIEW' ? 'view' : 'table';
|
|
104
|
+
const qual = this.qn(t.schema_name, t.table_name);
|
|
105
|
+
const fp = this.schemaFilePath(t.schema_name);
|
|
106
|
+
const node = this.makeNode(kind, t.table_name, qual, fp);
|
|
107
|
+
nodes.push(node);
|
|
108
|
+
tableNodeByKey.set(key, node);
|
|
109
|
+
edges.push(this.containEdge(schemaNode.id, node.id));
|
|
110
|
+
}
|
|
111
|
+
// ----- 5. Build column nodes + contains edges (table → column) -----
|
|
112
|
+
const columnNodeByKey = new Map(); // key = schema.table.column
|
|
113
|
+
for (const c of columns) {
|
|
114
|
+
const tableKey = this.tableKey(c.schema_name, c.table_name);
|
|
115
|
+
const tableNode = tableNodeByKey.get(tableKey);
|
|
116
|
+
if (!tableNode)
|
|
117
|
+
continue;
|
|
118
|
+
const colKey = this.columnKey(c.schema_name, c.table_name, c.column_name);
|
|
119
|
+
const qual = this.qn(c.schema_name, c.table_name, c.column_name);
|
|
120
|
+
const fp = this.schemaFilePath(c.schema_name);
|
|
121
|
+
const node = this.makeNode('column', c.column_name, qual, fp, {
|
|
122
|
+
startLine: c.ordinal_position ?? 0,
|
|
123
|
+
metadata: {
|
|
124
|
+
dataType: c.data_type,
|
|
125
|
+
isNullable: c.is_nullable === 'YES',
|
|
126
|
+
defaultValue: c.column_default ?? null,
|
|
127
|
+
maxLength: c.character_maximum_length ?? null,
|
|
128
|
+
numericPrecision: c.numeric_precision ?? null,
|
|
129
|
+
numericScale: c.numeric_scale ?? null,
|
|
130
|
+
isIdentity: c.is_identity === 1,
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
nodes.push(node);
|
|
134
|
+
columnNodeByKey.set(colKey, node);
|
|
135
|
+
edges.push(this.containEdge(tableNode.id, node.id));
|
|
136
|
+
}
|
|
137
|
+
// ----- 6. Primary key edges (table → column) -----
|
|
138
|
+
for (const pk of pks) {
|
|
139
|
+
const colKey = this.columnKey(pk.schema_name, pk.table_name, pk.column_name);
|
|
140
|
+
const colNode = columnNodeByKey.get(colKey);
|
|
141
|
+
const tableKey = this.tableKey(pk.schema_name, pk.table_name);
|
|
142
|
+
const tableNode = tableNodeByKey.get(tableKey);
|
|
143
|
+
if (colNode && tableNode) {
|
|
144
|
+
edges.push(this.makeEdge(tableNode.id, colNode.id, 'primary_key', {
|
|
145
|
+
constraintName: pk.constraint_name,
|
|
146
|
+
}));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// ----- 7. Foreign key references edges (column → referenced column) -----
|
|
150
|
+
for (const fk of fks) {
|
|
151
|
+
const fromKey = this.columnKey(fk.schema_name, fk.table_name, fk.column_name);
|
|
152
|
+
const toKey = this.columnKey(fk.ref_table_schema, fk.ref_table_name, fk.ref_column_name);
|
|
153
|
+
const fromNode = columnNodeByKey.get(fromKey);
|
|
154
|
+
const toNode = columnNodeByKey.get(toKey);
|
|
155
|
+
if (fromNode && toNode) {
|
|
156
|
+
edges.push(this.makeEdge(fromNode.id, toNode.id, 'references', {
|
|
157
|
+
constraintName: fk.constraint_name,
|
|
158
|
+
onUpdate: fk.update_rule,
|
|
159
|
+
onDelete: fk.delete_rule,
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
else if (fromNode) {
|
|
163
|
+
// Cross-schema FK reference — emit unresolved edge
|
|
164
|
+
edges.push(this.makeEdge(fromNode.id, (0, utils_1.hashString)(`${fk.ref_table_schema}.${fk.ref_table_name}.${fk.ref_column_name}`), 'references', {
|
|
165
|
+
constraintName: fk.constraint_name,
|
|
166
|
+
onUpdate: fk.update_rule,
|
|
167
|
+
onDelete: fk.delete_rule,
|
|
168
|
+
refTableSchema: fk.ref_table_schema,
|
|
169
|
+
refTableName: fk.ref_table_name,
|
|
170
|
+
refColumn: fk.ref_column_name,
|
|
171
|
+
unresolved: true,
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// ----- 8. Index nodes + indexed_by edges -----
|
|
176
|
+
// Group index rows to collect column lists (one row per index × column)
|
|
177
|
+
const indexGroups = new Map();
|
|
178
|
+
for (const idx of indexes) {
|
|
179
|
+
const indexKey = `${idx.schema_name}.${idx.table_name}.${idx.index_name}`;
|
|
180
|
+
if (!indexGroups.has(indexKey)) {
|
|
181
|
+
indexGroups.set(indexKey, {
|
|
182
|
+
schema: idx.schema_name,
|
|
183
|
+
table: idx.table_name,
|
|
184
|
+
indexName: idx.index_name,
|
|
185
|
+
isUnique: idx.is_unique,
|
|
186
|
+
isPrimaryKey: idx.is_primary_key,
|
|
187
|
+
columns: [],
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
indexGroups.get(indexKey).columns.push(idx.column_name);
|
|
191
|
+
}
|
|
192
|
+
for (const [, grp] of indexGroups) {
|
|
193
|
+
const tableKey = this.tableKey(grp.schema, grp.table);
|
|
194
|
+
const tableNode = tableNodeByKey.get(tableKey);
|
|
195
|
+
if (!tableNode)
|
|
196
|
+
continue;
|
|
197
|
+
if (grp.isPrimaryKey)
|
|
198
|
+
continue; // PK already handled via primary_key edges
|
|
199
|
+
const qual = this.qn(grp.schema, grp.table, grp.indexName);
|
|
200
|
+
const fp = this.schemaFilePath(grp.schema);
|
|
201
|
+
const node = this.makeNode('index', grp.indexName, qual, fp, {
|
|
202
|
+
metadata: {
|
|
203
|
+
unique: grp.isUnique,
|
|
204
|
+
columns: grp.columns,
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
nodes.push(node);
|
|
208
|
+
edges.push(this.containEdge(tableNode.id, node.id));
|
|
209
|
+
edges.push(this.makeEdge(tableNode.id, node.id, 'indexed_by'));
|
|
210
|
+
}
|
|
211
|
+
// ----- 9. Attach view definitions as signatures -----
|
|
212
|
+
const viewDefMap = new Map();
|
|
213
|
+
for (const v of views) {
|
|
214
|
+
const key = this.tableKey(v.schema_name, v.table_name);
|
|
215
|
+
if (v.view_definition)
|
|
216
|
+
viewDefMap.set(key, v.view_definition);
|
|
217
|
+
}
|
|
218
|
+
for (const node of nodes) {
|
|
219
|
+
if (node.kind !== 'view')
|
|
220
|
+
continue;
|
|
221
|
+
// qualifiedName = alias.schema.viewname → extract last two parts
|
|
222
|
+
const parts = node.qualifiedName.split('.');
|
|
223
|
+
if (parts.length < 3)
|
|
224
|
+
continue;
|
|
225
|
+
const schema = parts[parts.length - 2];
|
|
226
|
+
const viewName = parts[parts.length - 1];
|
|
227
|
+
const def = viewDefMap.get(this.tableKey(schema, viewName));
|
|
228
|
+
if (def)
|
|
229
|
+
node.signature = def;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
errors.push(`Introspection error: ${err.message}`);
|
|
234
|
+
}
|
|
235
|
+
finally {
|
|
236
|
+
await conn.close();
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
nodes,
|
|
240
|
+
edges,
|
|
241
|
+
durationMs: Date.now() - startTime,
|
|
242
|
+
errors,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
// ===========================================================================
|
|
246
|
+
// Query Methods
|
|
247
|
+
//
|
|
248
|
+
// MSSQL INFORMATION_SCHEMA uses UPPERCASE column names.
|
|
249
|
+
// Each query fetches ALL data and then JS-filters by schemaNames to avoid
|
|
250
|
+
// parameter-binding complexities with the mssql driver.
|
|
251
|
+
// ===========================================================================
|
|
252
|
+
/**
|
|
253
|
+
* Query: non-system schemas.
|
|
254
|
+
*/
|
|
255
|
+
async querySchemas(conn) {
|
|
256
|
+
return (await conn.query(`SELECT SCHEMA_NAME AS schema_name
|
|
257
|
+
FROM INFORMATION_SCHEMA.SCHEMATA
|
|
258
|
+
WHERE SCHEMA_NAME NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest')
|
|
259
|
+
AND SCHEMA_NAME NOT LIKE 'db_%'
|
|
260
|
+
ORDER BY SCHEMA_NAME`));
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Query: tables and views (BASE TABLE or VIEW).
|
|
264
|
+
*/
|
|
265
|
+
async queryTables(conn, schemaNames) {
|
|
266
|
+
if (schemaNames.length === 0)
|
|
267
|
+
return [];
|
|
268
|
+
const placeholders = schemaNames.map(() => '?').join(',');
|
|
269
|
+
return (await conn.query(`SELECT TABLE_SCHEMA AS schema_name,
|
|
270
|
+
TABLE_NAME AS table_name,
|
|
271
|
+
TABLE_TYPE AS table_type
|
|
272
|
+
FROM INFORMATION_SCHEMA.TABLES
|
|
273
|
+
WHERE TABLE_TYPE IN ('BASE TABLE', 'VIEW')
|
|
274
|
+
AND TABLE_SCHEMA IN (${placeholders})
|
|
275
|
+
ORDER BY TABLE_NAME`, schemaNames));
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Query: columns with identity detection via COLUMNPROPERTY.
|
|
279
|
+
*/
|
|
280
|
+
async queryColumns(conn, schemaNames) {
|
|
281
|
+
if (schemaNames.length === 0)
|
|
282
|
+
return [];
|
|
283
|
+
const placeholders = schemaNames.map(() => '?').join(',');
|
|
284
|
+
return (await conn.query(`SELECT c.TABLE_SCHEMA AS schema_name,
|
|
285
|
+
c.TABLE_NAME AS table_name,
|
|
286
|
+
c.COLUMN_NAME AS column_name,
|
|
287
|
+
c.DATA_TYPE AS data_type,
|
|
288
|
+
c.IS_NULLABLE AS is_nullable,
|
|
289
|
+
c.COLUMN_DEFAULT AS column_default,
|
|
290
|
+
c.CHARACTER_MAXIMUM_LENGTH AS character_maximum_length,
|
|
291
|
+
c.NUMERIC_PRECISION AS numeric_precision,
|
|
292
|
+
c.NUMERIC_SCALE AS numeric_scale,
|
|
293
|
+
c.ORDINAL_POSITION AS ordinal_position,
|
|
294
|
+
COLUMNPROPERTY(OBJECT_ID(QUOTENAME(c.TABLE_SCHEMA) + '.' + QUOTENAME(c.TABLE_NAME)), c.COLUMN_NAME, 'IsIdentity') AS is_identity
|
|
295
|
+
FROM INFORMATION_SCHEMA.COLUMNS c
|
|
296
|
+
WHERE c.TABLE_SCHEMA IN (${placeholders})
|
|
297
|
+
ORDER BY c.TABLE_NAME, c.ORDINAL_POSITION`, schemaNames));
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Query: columns that are part of a PRIMARY KEY constraint.
|
|
301
|
+
*/
|
|
302
|
+
async queryPrimaryKeys(conn, schemaNames) {
|
|
303
|
+
if (schemaNames.length === 0)
|
|
304
|
+
return [];
|
|
305
|
+
const placeholders = schemaNames.map(() => '?').join(',');
|
|
306
|
+
return (await conn.query(`SELECT tc.TABLE_SCHEMA AS schema_name,
|
|
307
|
+
tc.TABLE_NAME AS table_name,
|
|
308
|
+
tc.CONSTRAINT_NAME AS constraint_name,
|
|
309
|
+
kcu.COLUMN_NAME AS column_name
|
|
310
|
+
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
|
|
311
|
+
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
|
|
312
|
+
ON tc.CONSTRAINT_CATALOG = kcu.CONSTRAINT_CATALOG
|
|
313
|
+
AND tc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA
|
|
314
|
+
AND tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME
|
|
315
|
+
AND tc.TABLE_SCHEMA = kcu.TABLE_SCHEMA
|
|
316
|
+
AND tc.TABLE_NAME = kcu.TABLE_NAME
|
|
317
|
+
WHERE tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
|
|
318
|
+
AND tc.TABLE_SCHEMA IN (${placeholders})
|
|
319
|
+
ORDER BY tc.TABLE_NAME, kcu.ORDINAL_POSITION`, schemaNames));
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Query: foreign key columns + referenced table/column + referential actions.
|
|
323
|
+
*
|
|
324
|
+
* Uses the standard INFORMATION_SCHEMA 4-table join:
|
|
325
|
+
* TABLE_CONSTRAINTS + KEY_COLUMN_USAGE + CONSTRAINT_COLUMN_USAGE + REFERENTIAL_CONSTRAINTS
|
|
326
|
+
*/
|
|
327
|
+
async queryForeignKeys(conn, schemaNames) {
|
|
328
|
+
if (schemaNames.length === 0)
|
|
329
|
+
return [];
|
|
330
|
+
const placeholders = schemaNames.map(() => '?').join(',');
|
|
331
|
+
return (await conn.query(`SELECT tc.TABLE_SCHEMA AS schema_name,
|
|
332
|
+
tc.TABLE_NAME AS table_name,
|
|
333
|
+
tc.CONSTRAINT_NAME AS constraint_name,
|
|
334
|
+
kcu.COLUMN_NAME AS column_name,
|
|
335
|
+
ccu.TABLE_SCHEMA AS ref_table_schema,
|
|
336
|
+
ccu.TABLE_NAME AS ref_table_name,
|
|
337
|
+
ccu.COLUMN_NAME AS ref_column_name,
|
|
338
|
+
rc.UPDATE_RULE AS update_rule,
|
|
339
|
+
rc.DELETE_RULE AS delete_rule
|
|
340
|
+
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
|
|
341
|
+
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
|
|
342
|
+
ON tc.CONSTRAINT_CATALOG = kcu.CONSTRAINT_CATALOG
|
|
343
|
+
AND tc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA
|
|
344
|
+
AND tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME
|
|
345
|
+
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu
|
|
346
|
+
ON ccu.CONSTRAINT_CATALOG = tc.CONSTRAINT_CATALOG
|
|
347
|
+
AND ccu.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA
|
|
348
|
+
AND ccu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
|
|
349
|
+
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
|
|
350
|
+
ON rc.CONSTRAINT_CATALOG = tc.CONSTRAINT_CATALOG
|
|
351
|
+
AND rc.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA
|
|
352
|
+
AND rc.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
|
|
353
|
+
WHERE tc.CONSTRAINT_TYPE = 'FOREIGN KEY'
|
|
354
|
+
AND tc.TABLE_SCHEMA IN (${placeholders})
|
|
355
|
+
ORDER BY tc.TABLE_NAME, tc.CONSTRAINT_NAME, kcu.ORDINAL_POSITION`, schemaNames));
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Query: index columns from sys.indexes / sys.index_columns / sys.columns.
|
|
359
|
+
*
|
|
360
|
+
* MSSQL does NOT expose index metadata in INFORMATION_SCHEMA, so we query
|
|
361
|
+
* the sys catalog views instead. Returns one row per (index × column),
|
|
362
|
+
* grouped later in the build step.
|
|
363
|
+
*/
|
|
364
|
+
async queryIndexes(conn, schemaNames) {
|
|
365
|
+
if (schemaNames.length === 0)
|
|
366
|
+
return [];
|
|
367
|
+
const placeholders = schemaNames.map(() => '?').join(',');
|
|
368
|
+
return (await conn.query(`SELECT s.name AS schema_name,
|
|
369
|
+
t.name AS table_name,
|
|
370
|
+
i.name AS index_name,
|
|
371
|
+
i.is_unique AS is_unique,
|
|
372
|
+
i.is_primary_key AS is_primary_key,
|
|
373
|
+
c.name AS column_name,
|
|
374
|
+
ic.key_ordinal AS ordinal_position
|
|
375
|
+
FROM sys.indexes i
|
|
376
|
+
JOIN sys.tables t ON i.object_id = t.object_id
|
|
377
|
+
JOIN sys.schemas s ON t.schema_id = s.schema_id
|
|
378
|
+
JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
|
|
379
|
+
JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = ic.column_id
|
|
380
|
+
WHERE s.name IN (${placeholders})
|
|
381
|
+
ORDER BY t.name, i.name, ic.key_ordinal`, schemaNames));
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Query: view definitions.
|
|
385
|
+
*/
|
|
386
|
+
async queryViews(conn, schemaNames) {
|
|
387
|
+
if (schemaNames.length === 0)
|
|
388
|
+
return [];
|
|
389
|
+
const placeholders = schemaNames.map(() => '?').join(',');
|
|
390
|
+
return (await conn.query(`SELECT v.TABLE_SCHEMA AS schema_name,
|
|
391
|
+
v.TABLE_NAME AS table_name,
|
|
392
|
+
v.VIEW_DEFINITION AS view_definition
|
|
393
|
+
FROM INFORMATION_SCHEMA.VIEWS v
|
|
394
|
+
WHERE v.TABLE_SCHEMA IN (${placeholders})
|
|
395
|
+
ORDER BY v.TABLE_NAME`, schemaNames));
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
exports.MSSQLIntrospector = MSSQLIntrospector;
|
|
399
|
+
//# sourceMappingURL=mssql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../src/introspect/mssql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/introspect/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAKnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAuE1C,qBAAa,oBAAqB,SAAQ,gBAAgB;gBAC5C,MAAM,EAAE,kBAAkB;IAItC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/introspect/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAKnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAuE1C,qBAAa,oBAAqB,SAAQ,gBAAgB;gBAC5C,MAAM,EAAE,kBAAkB;IAItC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA8O7C;;OAEG;YACW,YAAY;IAW1B;;;OAGG;YACW,WAAW;IAqBzB;;OAEG;YACW,YAAY;IA8B1B;;OAEG;YACW,gBAAgB;IAsB9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,UAAU;CAezB"}
|