@uql/core 3.8.2 → 3.8.5

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/README.md +1 -0
  3. package/dist/migrate/builder/migrationBuilder.d.ts.map +1 -1
  4. package/dist/migrate/builder/migrationBuilder.js +7 -1
  5. package/dist/migrate/builder/migrationBuilder.js.map +1 -1
  6. package/dist/migrate/codegen/entityCodeGenerator.d.ts.map +1 -1
  7. package/dist/migrate/codegen/entityCodeGenerator.js +12 -8
  8. package/dist/migrate/codegen/entityCodeGenerator.js.map +1 -1
  9. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts +77 -0
  10. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts.map +1 -0
  11. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js +156 -0
  12. package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js.map +1 -0
  13. package/dist/migrate/introspection/index.d.ts +1 -0
  14. package/dist/migrate/introspection/index.d.ts.map +1 -1
  15. package/dist/migrate/introspection/index.js +1 -0
  16. package/dist/migrate/introspection/index.js.map +1 -1
  17. package/dist/migrate/introspection/mysqlIntrospector.d.ts +16 -15
  18. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -1
  19. package/dist/migrate/introspection/mysqlIntrospector.js +64 -122
  20. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -1
  21. package/dist/migrate/introspection/postgresIntrospector.d.ts +16 -14
  22. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -1
  23. package/dist/migrate/introspection/postgresIntrospector.js +68 -117
  24. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -1
  25. package/dist/migrate/introspection/sqliteIntrospector.d.ts +20 -14
  26. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -1
  27. package/dist/migrate/introspection/sqliteIntrospector.js +78 -116
  28. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -1
  29. package/dist/migrate/schemaGenerator.d.ts +1 -13
  30. package/dist/migrate/schemaGenerator.d.ts.map +1 -1
  31. package/dist/migrate/schemaGenerator.js +9 -72
  32. package/dist/migrate/schemaGenerator.js.map +1 -1
  33. package/dist/schema/schemaASTBuilder.d.ts.map +1 -1
  34. package/dist/schema/schemaASTBuilder.js +31 -0
  35. package/dist/schema/schemaASTBuilder.js.map +1 -1
  36. package/package.json +2 -3
@@ -1,24 +1,30 @@
1
- import type { QuerierPool, SchemaIntrospector, TableSchema } from '../../type/index.js';
2
- import { BaseSqlIntrospector } from './baseSqlIntrospector.js';
1
+ import type { ColumnSchema, ForeignKeySchema, IndexSchema, QuerierPool, SqlQuerier } from '../../type/index.js';
2
+ import { AbstractSqlSchemaIntrospector } from './abstractSqlSchemaIntrospector.js';
3
3
  /**
4
4
  * SQLite schema introspector
5
5
  */
6
- export declare class SqliteSchemaIntrospector extends BaseSqlIntrospector implements SchemaIntrospector {
7
- private readonly pool;
6
+ export declare class SqliteSchemaIntrospector extends AbstractSqlSchemaIntrospector {
7
+ protected readonly pool: QuerierPool;
8
8
  constructor(pool: QuerierPool);
9
- getTableSchema(tableName: string): Promise<TableSchema | undefined>;
10
- getTableNames(): Promise<string[]>;
11
- tableExists(tableName: string): Promise<boolean>;
12
- private tableExistsInternal;
13
- private getQuerier;
14
- private getColumns;
9
+ protected getTableNamesQuery(): string;
10
+ protected tableExistsQuery(): string;
11
+ protected parseTableExistsResult(results: Record<string, unknown>[]): boolean;
12
+ protected getColumnsQuery(tableName: string): string;
13
+ protected getIndexesQuery(tableName: string): string;
14
+ protected getForeignKeysQuery(tableName: string): string;
15
+ protected getPrimaryKeyQuery(tableName: string): string;
16
+ protected getColumnsParams(_tableName: string): unknown[];
17
+ protected getIndexesParams(_tableName: string): unknown[];
18
+ protected getForeignKeysParams(_tableName: string): unknown[];
19
+ protected getPrimaryKeyParams(_tableName: string): unknown[];
20
+ protected mapTableNameRow(row: Record<string, unknown>): string;
21
+ protected mapColumnsResult(querier: SqlQuerier, tableName: string, results: Record<string, unknown>[]): Promise<ColumnSchema[]>;
22
+ protected mapIndexesResult(querier: SqlQuerier, _tableName: string, results: Record<string, unknown>[]): Promise<IndexSchema[]>;
23
+ protected mapForeignKeysResult(_querier: SqlQuerier, tableName: string, results: Record<string, unknown>[]): Promise<ForeignKeySchema[]>;
24
+ protected mapPrimaryKeyResult(results: Record<string, unknown>[]): string[] | undefined;
15
25
  private getUniqueColumns;
16
- private getIndexes;
17
- private getForeignKeys;
18
- private getPrimaryKey;
19
26
  protected normalizeType(type: string): string;
20
27
  protected extractLength(type: string): number | undefined;
21
28
  protected parseDefaultValue(defaultValue: string | null): unknown;
22
- protected normalizeReferentialAction(action: string): 'CASCADE' | 'SET NULL' | 'RESTRICT' | 'NO ACTION' | undefined;
23
29
  }
24
30
  //# sourceMappingURL=sqliteIntrospector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteIntrospector.d.ts","sourceRoot":"","sources":["../../../src/migrate/introspection/sqliteIntrospector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,WAAW,EACX,kBAAkB,EAElB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,mBAAoB,YAAW,kBAAkB;IACjF,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,WAAW;IAIxC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IA4BnE,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBlC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAUxC,mBAAmB;YAYnB,UAAU;YAWV,UAAU;YA+BV,gBAAgB;YA0BhB,UAAU;YAmCV,cAAc;YAmCd,aAAa;IAqB3B,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAM7C,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzD,SAAS,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAyBjE,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS;CAcpH"}
1
+ {"version":3,"file":"sqliteIntrospector.d.ts","sourceRoot":"","sources":["../../../src/migrate/introspection/sqliteIntrospector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,6BAA6B;IACzE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEzB,IAAI,EAAE,WAAW;IAS7B,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAUtC,SAAS,CAAC,gBAAgB,IAAI,MAAM;IASpC,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO;IAK7E,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIpD,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIpD,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIxD,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;cAIpC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE;cAI/C,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE;cAI/C,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE;cAInD,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE;IAQrE,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;cAI/C,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,YAAY,EAAE,CAAC;cAmBV,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,WAAW,EAAE,CAAC;cAuBT,oBAAoB,CAClC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACjC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAuB9B,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS;YAczE,gBAAgB;IAwB9B,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAM7C,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzD,SAAS,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;CAuBlE"}
@@ -1,87 +1,68 @@
1
- import { isSqlQuerier } from '../../type/index.js';
2
- import { BaseSqlIntrospector } from './baseSqlIntrospector.js';
1
+ import { AbstractSqlSchemaIntrospector } from './abstractSqlSchemaIntrospector.js';
3
2
  /**
4
3
  * SQLite schema introspector
5
4
  */
6
- export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
5
+ export class SqliteSchemaIntrospector extends AbstractSqlSchemaIntrospector {
7
6
  pool;
8
7
  constructor(pool) {
9
8
  super('sqlite');
10
9
  this.pool = pool;
11
10
  }
12
- async getTableSchema(tableName) {
13
- const querier = await this.getQuerier();
14
- try {
15
- const exists = await this.tableExistsInternal(querier, tableName);
16
- if (!exists) {
17
- return undefined;
18
- }
19
- const [columns, indexes, foreignKeys, primaryKey] = await Promise.all([
20
- this.getColumns(querier, tableName),
21
- this.getIndexes(querier, tableName),
22
- this.getForeignKeys(querier, tableName),
23
- this.getPrimaryKey(querier, tableName),
24
- ]);
25
- return {
26
- name: tableName,
27
- columns,
28
- primaryKey,
29
- indexes,
30
- foreignKeys,
31
- };
32
- }
33
- finally {
34
- await querier.release();
35
- }
36
- }
37
- async getTableNames() {
38
- const querier = await this.getQuerier();
39
- try {
40
- const sql = /*sql*/ `
41
- SELECT name
42
- FROM sqlite_master
43
- WHERE type = 'table'
44
- AND name NOT LIKE 'sqlite_%'
45
- ORDER BY name
46
- `;
47
- const results = await querier.all(sql);
48
- return results.map((r) => r.name);
49
- }
50
- finally {
51
- await querier.release();
52
- }
53
- }
54
- async tableExists(tableName) {
55
- const querier = await this.getQuerier();
56
- try {
57
- return this.tableExistsInternal(querier, tableName);
58
- }
59
- finally {
60
- await querier.release();
61
- }
11
+ // ============================================================================
12
+ // SQL Queries (dialect-specific)
13
+ // ============================================================================
14
+ getTableNamesQuery() {
15
+ return /*sql*/ `
16
+ SELECT name
17
+ FROM sqlite_master
18
+ WHERE type = 'table'
19
+ AND name NOT LIKE 'sqlite_%'
20
+ ORDER BY name
21
+ `;
62
22
  }
63
- async tableExistsInternal(querier, tableName) {
64
- const sql = /*sql*/ `
23
+ tableExistsQuery() {
24
+ return /*sql*/ `
65
25
  SELECT COUNT(*) as count
66
26
  FROM sqlite_master
67
27
  WHERE type = 'table'
68
28
  AND name = ?
69
29
  `;
70
- const results = await querier.all(sql, [tableName]);
71
- return (results[0]?.count ?? 0) > 0;
72
- }
73
- async getQuerier() {
74
- const querier = await this.pool.getQuerier();
75
- if (!isSqlQuerier(querier)) {
76
- await querier.release();
77
- throw new Error('SqliteSchemaIntrospector requires a SQL-based querier');
78
- }
79
- return querier;
80
30
  }
81
- async getColumns(querier, tableName) {
82
- // SQLite uses PRAGMA for table info
83
- const sql = `PRAGMA table_info(${this.escapeId(tableName)})`;
84
- const results = await querier.all(sql);
31
+ parseTableExistsResult(results) {
32
+ return this.toNumber(results[0]?.count) > 0;
33
+ }
34
+ // SQLite uses PRAGMA which doesn't use parameterized queries in the same way
35
+ getColumnsQuery(tableName) {
36
+ return `PRAGMA table_info(${this.escapeId(tableName)})`;
37
+ }
38
+ getIndexesQuery(tableName) {
39
+ return `PRAGMA index_list(${this.escapeId(tableName)})`;
40
+ }
41
+ getForeignKeysQuery(tableName) {
42
+ return `PRAGMA foreign_key_list(${this.escapeId(tableName)})`;
43
+ }
44
+ getPrimaryKeyQuery(tableName) {
45
+ return `PRAGMA table_info(${this.escapeId(tableName)})`;
46
+ }
47
+ getColumnsParams(_tableName) {
48
+ return [];
49
+ }
50
+ getIndexesParams(_tableName) {
51
+ return [];
52
+ }
53
+ getForeignKeysParams(_tableName) {
54
+ return [];
55
+ }
56
+ getPrimaryKeyParams(_tableName) {
57
+ return [];
58
+ }
59
+ // ============================================================================
60
+ // Row Mapping (dialect-specific)
61
+ // ============================================================================
62
+ mapTableNameRow(row) {
63
+ return row.name;
64
+ }
65
+ async mapColumnsResult(querier, tableName, results) {
85
66
  // Get unique columns from indexes
86
67
  const uniqueColumns = await this.getUniqueColumns(querier, tableName);
87
68
  return results.map((row) => ({
@@ -98,51 +79,32 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
98
79
  comment: undefined, // SQLite doesn't support column comments
99
80
  }));
100
81
  }
101
- async getUniqueColumns(querier, tableName) {
102
- const sql = `PRAGMA index_list(${this.escapeId(tableName)})`;
103
- const indexes = await querier.all(sql);
104
- const uniqueColumns = new Set();
105
- for (const index of indexes) {
106
- if (index.unique && index.origin === 'u') {
107
- const indexInfo = await querier.all(`PRAGMA index_info(${this.escapeId(index.name)})`);
108
- // Only single-column unique constraints
109
- if (indexInfo.length === 1) {
110
- uniqueColumns.add(indexInfo[0].name);
111
- }
112
- }
113
- }
114
- return uniqueColumns;
115
- }
116
- async getIndexes(querier, tableName) {
117
- const sql = `PRAGMA index_list(${this.escapeId(tableName)})`;
118
- const indexes = await querier.all(sql);
119
- const result = [];
120
- for (const index of indexes) {
82
+ async mapIndexesResult(querier, _tableName, results) {
83
+ const indexSchemas = [];
84
+ for (const index of results) {
121
85
  const columns = await querier.all(`PRAGMA index_info(${this.escapeId(index.name)})`);
122
86
  // Include user-created indexes ('c') and multi-column unique constraints ('u')
123
87
  // Skip primary key indexes ('pk') and single-column unique constraints
124
88
  const isUserCreated = index.origin === 'c';
125
89
  const isCompositeUnique = index.origin === 'u' && columns.length > 1;
126
- const shouldInclude = isUserCreated || isCompositeUnique;
127
- if (shouldInclude) {
128
- result.push({
90
+ if (isUserCreated || isCompositeUnique) {
91
+ indexSchemas.push({
129
92
  name: index.name,
130
93
  columns: columns.map((c) => c.name),
131
94
  unique: Boolean(index.unique),
132
95
  });
133
96
  }
134
97
  }
135
- return result;
98
+ return indexSchemas;
136
99
  }
137
- async getForeignKeys(querier, tableName) {
138
- const sql = `PRAGMA foreign_key_list(${this.escapeId(tableName)})`;
139
- const results = await querier.all(sql);
100
+ async mapForeignKeysResult(_querier, tableName, results) {
140
101
  // Group by id to handle composite foreign keys
141
102
  const grouped = new Map();
142
103
  for (const row of results) {
143
- const existing = grouped.get(row.id) ?? [];
104
+ const id = row.id;
105
+ const existing = grouped.get(id) ?? [];
144
106
  existing.push(row);
145
- grouped.set(row.id, existing);
107
+ grouped.set(id, existing);
146
108
  }
147
109
  return Array.from(grouped.entries()).map(([id, rows]) => {
148
110
  const first = rows[0];
@@ -156,15 +118,30 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
156
118
  };
157
119
  });
158
120
  }
159
- async getPrimaryKey(querier, tableName) {
160
- const sql = `PRAGMA table_info(${this.escapeId(tableName)})`;
161
- const results = await querier.all(sql);
121
+ mapPrimaryKeyResult(results) {
162
122
  const pkColumns = results.filter((r) => r.pk > 0).sort((a, b) => a.pk - b.pk);
163
123
  if (pkColumns.length === 0) {
164
124
  return undefined;
165
125
  }
166
126
  return pkColumns.map((r) => r.name);
167
127
  }
128
+ // ============================================================================
129
+ // SQLite-specific helpers
130
+ // ============================================================================
131
+ async getUniqueColumns(querier, tableName) {
132
+ const indexes = await querier.all(`PRAGMA index_list(${this.escapeId(tableName)})`);
133
+ const uniqueColumns = new Set();
134
+ for (const index of indexes) {
135
+ if (index.unique && index.origin === 'u') {
136
+ const indexInfo = await querier.all(`PRAGMA index_info(${this.escapeId(index.name)})`);
137
+ // Only single-column unique constraints
138
+ if (indexInfo.length === 1) {
139
+ uniqueColumns.add(indexInfo[0].name);
140
+ }
141
+ }
142
+ }
143
+ return uniqueColumns;
144
+ }
168
145
  normalizeType(type) {
169
146
  // Extract base type without length/precision
170
147
  const match = type.match(/^([A-Za-z]+)/);
@@ -178,7 +155,6 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
178
155
  if (defaultValue === null) {
179
156
  return undefined;
180
157
  }
181
- // Check for common patterns
182
158
  if (defaultValue === 'NULL') {
183
159
  return null;
184
160
  }
@@ -196,19 +172,5 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
196
172
  }
197
173
  return defaultValue;
198
174
  }
199
- normalizeReferentialAction(action) {
200
- switch (action.toUpperCase()) {
201
- case 'CASCADE':
202
- return 'CASCADE';
203
- case 'SET NULL':
204
- return 'SET NULL';
205
- case 'RESTRICT':
206
- return 'RESTRICT';
207
- case 'NO ACTION':
208
- return 'NO ACTION';
209
- default:
210
- return undefined;
211
- }
212
- }
213
175
  }
214
176
  //# sourceMappingURL=sqliteIntrospector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteIntrospector.js","sourceRoot":"","sources":["../../../src/migrate/introspection/sqliteIntrospector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqliteIntrospector.js","sourceRoot":"","sources":["../../../src/migrate/introspection/sqliteIntrospector.ts"],"names":[],"mappings":"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"}
@@ -32,14 +32,6 @@ export declare class SqlSchemaGenerator extends AbstractDialect implements Schem
32
32
  generateAlterTableDown(diff: SchemaDiff): string[];
33
33
  generateCreateIndex(tableName: string, index: IndexSchema): string;
34
34
  generateDropIndex(tableName: string, indexName: string): string;
35
- /**
36
- * Generate column definitions from entity metadata
37
- */
38
- generateColumnDefinitions<E>(meta: EntityMeta<E>): string[];
39
- /**
40
- * Generate a single column definition
41
- */
42
- generateColumnDefinition<E>(fieldKey: string, field: FieldOptions, meta: EntityMeta<E>): string;
43
35
  /**
44
36
  * Generate column definition from a ColumnSchema object
45
37
  */
@@ -47,10 +39,6 @@ export declare class SqlSchemaGenerator extends AbstractDialect implements Schem
47
39
  includePrimaryKey?: boolean;
48
40
  includeUnique?: boolean;
49
41
  }): string;
50
- /**
51
- * Generate table constraints (indexes, foreign keys, etc.)
52
- */
53
- generateTableConstraints<E>(meta: EntityMeta<E>): string[];
54
42
  getSqlType(field: FieldOptions, fieldType?: unknown): string;
55
43
  /**
56
44
  * Get the boolean type for this database
@@ -63,7 +51,7 @@ export declare class SqlSchemaGenerator extends AbstractDialect implements Schem
63
51
  /**
64
52
  * Get table options (e.g., ENGINE for MySQL)
65
53
  */
66
- getTableOptions<E>(meta: EntityMeta<E>): string;
54
+ getTableOptions<E>(_meta: EntityMeta<E>): string;
67
55
  /**
68
56
  * Generate column comment clause (if supported)
69
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schemaGenerator.d.ts","sourceRoot":"","sources":["../../src/migrate/schemaGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaGenerator.d.ts","sourceRoot":"","sources":["../../src/migrate/schemaGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { AbstractDialect } from '../dialect/index.js';
2
2
  import { getMeta } from '../entity/index.js';
3
3
  import { areTypesEqual, canonicalToSql, fieldOptionsToCanonical, sqlToCanonical } from '../schema/canonicalType.js';
4
+ import { SchemaASTBuilder } from '../schema/schemaASTBuilder.js';
4
5
  import { escapeSqlId, getKeys, isAutoIncrement } from '../util/index.js';
5
6
  import { formatDefaultValue } from './builder/expressions.js';
6
7
  /**
@@ -44,21 +45,13 @@ export class SqlSchemaGenerator extends AbstractDialect {
44
45
  // SchemaGenerator Implementation
45
46
  // ============================================================================
46
47
  generateCreateTable(entity, options = {}) {
47
- const meta = getMeta(entity);
48
- const tableName = this.resolveTableName(entity, meta);
49
- const columns = this.generateColumnDefinitions(meta);
50
- const constraints = this.generateTableConstraints(meta);
51
- const ifNotExists = options.ifNotExists && this.config.features.ifNotExists ? 'IF NOT EXISTS ' : '';
52
- let sql = `CREATE TABLE ${ifNotExists}${this.escapeId(tableName)} (\n`;
53
- sql += columns.map((col) => ` ${col}`).join(',\n');
54
- if (constraints.length > 0) {
55
- sql += ',\n';
56
- sql += constraints.map((c) => ` ${c}`).join(',\n');
57
- }
58
- sql += '\n)';
59
- sql += this.getTableOptions(meta);
60
- sql += ';';
61
- return sql;
48
+ const builder = new SchemaASTBuilder(this.namingStrategy);
49
+ const ast = builder.fromEntities([entity], {
50
+ resolveTableName: this.resolveTableName.bind(this),
51
+ resolveColumnName: this.resolveColumnName.bind(this),
52
+ });
53
+ const tableNode = ast.getTables()[0];
54
+ return this.generateCreateTableFromNode(tableNode, options);
62
55
  }
63
56
  generateDropTable(entity) {
64
57
  const meta = getMeta(entity);
@@ -143,28 +136,6 @@ export class SqlSchemaGenerator extends AbstractDialect {
143
136
  }
144
137
  return `DROP INDEX IF EXISTS ${this.escapeId(indexName)};`;
145
138
  }
146
- /**
147
- * Generate column definitions from entity metadata
148
- */
149
- generateColumnDefinitions(meta) {
150
- const columns = [];
151
- const fieldKeys = getKeys(meta.fields);
152
- for (const key of fieldKeys) {
153
- const field = meta.fields[key];
154
- if (field?.virtual)
155
- continue;
156
- const colDef = this.generateColumnDefinition(key, field, meta);
157
- columns.push(colDef);
158
- }
159
- return columns;
160
- }
161
- /**
162
- * Generate a single column definition
163
- */
164
- generateColumnDefinition(fieldKey, field, meta) {
165
- const column = this.fieldToColumnSchema(fieldKey, field, meta);
166
- return this.generateColumnDefinitionFromSchema(column);
167
- }
168
139
  /**
169
140
  * Generate column definition from a ColumnSchema object
170
141
  */
@@ -205,40 +176,6 @@ export class SqlSchemaGenerator extends AbstractDialect {
205
176
  }
206
177
  return definition;
207
178
  }
208
- /**
209
- * Generate table constraints (indexes, foreign keys, etc.)
210
- */
211
- generateTableConstraints(meta) {
212
- const constraints = [];
213
- const fieldKeys = getKeys(meta.fields);
214
- const tableName = this.resolveTableName(meta.entity, meta);
215
- // Generate indexes from field options
216
- for (const key of fieldKeys) {
217
- const field = meta.fields[key];
218
- if (field?.index) {
219
- const columnName = this.resolveColumnName(key, field);
220
- const indexName = typeof field.index === 'string' ? field.index : `idx_${tableName}_${columnName}`;
221
- constraints.push(`INDEX ${this.escapeId(indexName)} (${this.escapeId(columnName)})`);
222
- }
223
- }
224
- // Generate foreign key constraints from references
225
- for (const key of fieldKeys) {
226
- const field = meta.fields[key];
227
- const reference = field?.references ?? field?.reference;
228
- if (reference && field.foreignKey !== false) {
229
- const refEntity = reference();
230
- const refMeta = getMeta(refEntity);
231
- const refIdField = refMeta.fields[refMeta.id];
232
- const columnName = this.resolveColumnName(key, field);
233
- const refTableName = this.resolveTableName(refEntity, refMeta);
234
- const refColumnName = this.resolveColumnName(refMeta.id, refIdField);
235
- const fkName = typeof field.foreignKey === 'string' ? field.foreignKey : `fk_${tableName}_${columnName}`;
236
- constraints.push(`CONSTRAINT ${this.escapeId(fkName)} FOREIGN KEY (${this.escapeId(columnName)}) ` +
237
- `REFERENCES ${this.escapeId(refTableName)} (${this.escapeId(refColumnName)})`);
238
- }
239
- }
240
- return constraints;
241
- }
242
179
  getSqlType(field, fieldType) {
243
180
  // If field has a reference, inherit type from the target primary key
244
181
  const reference = field.references ?? field.reference;
@@ -298,7 +235,7 @@ export class SqlSchemaGenerator extends AbstractDialect {
298
235
  /**
299
236
  * Get table options (e.g., ENGINE for MySQL)
300
237
  */
301
- getTableOptions(meta) {
238
+ getTableOptions(_meta) {
302
239
  return this.config.tableOptions ? ` ${this.config.tableOptions}` : '';
303
240
  }
304
241
  /**