@uql/core 3.8.2 → 3.8.3

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 +9 -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 +65 -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 +79 -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): any[];
17
+ protected getIndexesParams(_tableName: string): any[];
18
+ protected getForeignKeysParams(_tableName: string): any[];
19
+ protected getPrimaryKeyParams(_tableName: string): any[];
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;IAM7E,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,GAAG,EAAE;cAI3C,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE;cAI3C,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE;cAI/C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE;IAQjE,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,69 @@
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
+ const count = results[0]?.count;
33
+ return (typeof count === 'number' || typeof count === 'bigint' ? Number(count) : 0) > 0;
34
+ }
35
+ // SQLite uses PRAGMA which doesn't use parameterized queries in the same way
36
+ getColumnsQuery(tableName) {
37
+ return `PRAGMA table_info(${this.escapeId(tableName)})`;
38
+ }
39
+ getIndexesQuery(tableName) {
40
+ return `PRAGMA index_list(${this.escapeId(tableName)})`;
41
+ }
42
+ getForeignKeysQuery(tableName) {
43
+ return `PRAGMA foreign_key_list(${this.escapeId(tableName)})`;
44
+ }
45
+ getPrimaryKeyQuery(tableName) {
46
+ return `PRAGMA table_info(${this.escapeId(tableName)})`;
47
+ }
48
+ getColumnsParams(_tableName) {
49
+ return [];
50
+ }
51
+ getIndexesParams(_tableName) {
52
+ return [];
53
+ }
54
+ getForeignKeysParams(_tableName) {
55
+ return [];
56
+ }
57
+ getPrimaryKeyParams(_tableName) {
58
+ return [];
59
+ }
60
+ // ============================================================================
61
+ // Row Mapping (dialect-specific)
62
+ // ============================================================================
63
+ mapTableNameRow(row) {
64
+ return row.name;
65
+ }
66
+ async mapColumnsResult(querier, tableName, results) {
85
67
  // Get unique columns from indexes
86
68
  const uniqueColumns = await this.getUniqueColumns(querier, tableName);
87
69
  return results.map((row) => ({
@@ -98,51 +80,32 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
98
80
  comment: undefined, // SQLite doesn't support column comments
99
81
  }));
100
82
  }
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) {
83
+ async mapIndexesResult(querier, _tableName, results) {
84
+ const indexSchemas = [];
85
+ for (const index of results) {
121
86
  const columns = await querier.all(`PRAGMA index_info(${this.escapeId(index.name)})`);
122
87
  // Include user-created indexes ('c') and multi-column unique constraints ('u')
123
88
  // Skip primary key indexes ('pk') and single-column unique constraints
124
89
  const isUserCreated = index.origin === 'c';
125
90
  const isCompositeUnique = index.origin === 'u' && columns.length > 1;
126
- const shouldInclude = isUserCreated || isCompositeUnique;
127
- if (shouldInclude) {
128
- result.push({
91
+ if (isUserCreated || isCompositeUnique) {
92
+ indexSchemas.push({
129
93
  name: index.name,
130
94
  columns: columns.map((c) => c.name),
131
95
  unique: Boolean(index.unique),
132
96
  });
133
97
  }
134
98
  }
135
- return result;
99
+ return indexSchemas;
136
100
  }
137
- async getForeignKeys(querier, tableName) {
138
- const sql = `PRAGMA foreign_key_list(${this.escapeId(tableName)})`;
139
- const results = await querier.all(sql);
101
+ async mapForeignKeysResult(_querier, tableName, results) {
140
102
  // Group by id to handle composite foreign keys
141
103
  const grouped = new Map();
142
104
  for (const row of results) {
143
- const existing = grouped.get(row.id) ?? [];
105
+ const id = row.id;
106
+ const existing = grouped.get(id) ?? [];
144
107
  existing.push(row);
145
- grouped.set(row.id, existing);
108
+ grouped.set(id, existing);
146
109
  }
147
110
  return Array.from(grouped.entries()).map(([id, rows]) => {
148
111
  const first = rows[0];
@@ -156,15 +119,30 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
156
119
  };
157
120
  });
158
121
  }
159
- async getPrimaryKey(querier, tableName) {
160
- const sql = `PRAGMA table_info(${this.escapeId(tableName)})`;
161
- const results = await querier.all(sql);
122
+ mapPrimaryKeyResult(results) {
162
123
  const pkColumns = results.filter((r) => r.pk > 0).sort((a, b) => a.pk - b.pk);
163
124
  if (pkColumns.length === 0) {
164
125
  return undefined;
165
126
  }
166
127
  return pkColumns.map((r) => r.name);
167
128
  }
129
+ // ============================================================================
130
+ // SQLite-specific helpers
131
+ // ============================================================================
132
+ async getUniqueColumns(querier, tableName) {
133
+ const indexes = await querier.all(`PRAGMA index_list(${this.escapeId(tableName)})`);
134
+ const uniqueColumns = new Set();
135
+ for (const index of indexes) {
136
+ if (index.unique && index.origin === 'u') {
137
+ const indexInfo = await querier.all(`PRAGMA index_info(${this.escapeId(index.name)})`);
138
+ // Only single-column unique constraints
139
+ if (indexInfo.length === 1) {
140
+ uniqueColumns.add(indexInfo[0].name);
141
+ }
142
+ }
143
+ }
144
+ return uniqueColumns;
145
+ }
168
146
  normalizeType(type) {
169
147
  // Extract base type without length/precision
170
148
  const match = type.match(/^([A-Za-z]+)/);
@@ -178,7 +156,6 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
178
156
  if (defaultValue === null) {
179
157
  return undefined;
180
158
  }
181
- // Check for common patterns
182
159
  if (defaultValue === 'NULL') {
183
160
  return null;
184
161
  }
@@ -196,19 +173,5 @@ export class SqliteSchemaIntrospector extends BaseSqlIntrospector {
196
173
  }
197
174
  return defaultValue;
198
175
  }
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
176
  }
214
177
  //# 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
  /**