@lyku/lockstep-pg 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LLMs.md +86 -0
- package/README.md +93 -0
- package/package.json +32 -0
- package/src/buildTableIndexCommand.d.ts +3 -0
- package/src/buildTableIndexCommand.d.ts.map +1 -0
- package/src/buildTableIndexCommand.js +46 -0
- package/src/buildTableIndexCommand.js.map +1 -0
- package/src/buildTableTriggerCommands.d.ts +3 -0
- package/src/buildTableTriggerCommands.d.ts.map +1 -0
- package/src/buildTableTriggerCommands.js +23 -0
- package/src/buildTableTriggerCommands.js.map +1 -0
- package/src/createTable.d.ts +3 -0
- package/src/createTable.d.ts.map +1 -0
- package/src/createTable.js +46 -0
- package/src/createTable.js.map +1 -0
- package/src/dateToPostgresString.d.ts +2 -0
- package/src/dateToPostgresString.d.ts.map +1 -0
- package/src/dateToPostgresString.js +7 -0
- package/src/dateToPostgresString.js.map +1 -0
- package/src/diff.d.ts +82 -0
- package/src/diff.d.ts.map +1 -0
- package/src/diff.js +218 -0
- package/src/diff.js.map +1 -0
- package/src/drift.d.ts +16 -0
- package/src/drift.d.ts.map +1 -0
- package/src/drift.js +299 -0
- package/src/drift.js.map +1 -0
- package/src/form.d.ts +3 -0
- package/src/form.d.ts.map +1 -0
- package/src/form.js +9 -0
- package/src/form.js.map +1 -0
- package/src/generateSql.d.ts +16 -0
- package/src/generateSql.d.ts.map +1 -0
- package/src/generateSql.js +306 -0
- package/src/generateSql.js.map +1 -0
- package/src/index.d.ts +16 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +21 -0
- package/src/index.js.map +1 -0
- package/src/introspect.d.ts +56 -0
- package/src/introspect.d.ts.map +1 -0
- package/src/introspect.js +435 -0
- package/src/introspect.js.map +1 -0
- package/src/mapArrayType.d.ts +3 -0
- package/src/mapArrayType.d.ts.map +1 -0
- package/src/mapArrayType.js +41 -0
- package/src/mapArrayType.js.map +1 -0
- package/src/mapBigintType.d.ts +3 -0
- package/src/mapBigintType.d.ts.map +1 -0
- package/src/mapBigintType.js +17 -0
- package/src/mapBigintType.js.map +1 -0
- package/src/mapBigserialType.d.ts +3 -0
- package/src/mapBigserialType.d.ts.map +1 -0
- package/src/mapBigserialType.js +12 -0
- package/src/mapBigserialType.js.map +1 -0
- package/src/mapCharType.d.ts +3 -0
- package/src/mapCharType.d.ts.map +1 -0
- package/src/mapCharType.js +22 -0
- package/src/mapCharType.js.map +1 -0
- package/src/mapColumnType.d.ts +3 -0
- package/src/mapColumnType.d.ts.map +1 -0
- package/src/mapColumnType.js +63 -0
- package/src/mapColumnType.js.map +1 -0
- package/src/mapIntegerType.d.ts +3 -0
- package/src/mapIntegerType.d.ts.map +1 -0
- package/src/mapIntegerType.js +12 -0
- package/src/mapIntegerType.js.map +1 -0
- package/src/mapSerialType.d.ts +3 -0
- package/src/mapSerialType.d.ts.map +1 -0
- package/src/mapSerialType.js +12 -0
- package/src/mapSerialType.js.map +1 -0
- package/src/mapTextType.d.ts +3 -0
- package/src/mapTextType.d.ts.map +1 -0
- package/src/mapTextType.js +44 -0
- package/src/mapTextType.js.map +1 -0
- package/src/mapTimestamptzType.d.ts +3 -0
- package/src/mapTimestamptzType.d.ts.map +1 -0
- package/src/mapTimestamptzType.js +13 -0
- package/src/mapTimestamptzType.js.map +1 -0
- package/src/mapVarcharType.d.ts +3 -0
- package/src/mapVarcharType.d.ts.map +1 -0
- package/src/mapVarcharType.js +44 -0
- package/src/mapVarcharType.js.map +1 -0
- package/src/migrate.d.ts +13 -0
- package/src/migrate.d.ts.map +1 -0
- package/src/migrate.js +350 -0
- package/src/migrate.js.map +1 -0
- package/src/numberChecks.d.ts +11 -0
- package/src/numberChecks.d.ts.map +1 -0
- package/src/numberChecks.js +22 -0
- package/src/numberChecks.js.map +1 -0
- package/src/seed.d.ts +3 -0
- package/src/seed.d.ts.map +1 -0
- package/src/seed.js +56 -0
- package/src/seed.js.map +1 -0
- package/src/setupTable.d.ts +3 -0
- package/src/setupTable.d.ts.map +1 -0
- package/src/setupTable.js +41 -0
- package/src/setupTable.js.map +1 -0
- package/src/timestampChecks.d.ts +11 -0
- package/src/timestampChecks.d.ts.map +1 -0
- package/src/timestampChecks.js +22 -0
- package/src/timestampChecks.js.map +1 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate SQL from diff operations
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Generate SQL type definition for a column
|
|
6
|
+
*/
|
|
7
|
+
function columnTypeToSql(col) {
|
|
8
|
+
let sql = '';
|
|
9
|
+
switch (col.type) {
|
|
10
|
+
case 'bigint':
|
|
11
|
+
sql = 'BIGINT';
|
|
12
|
+
break;
|
|
13
|
+
case 'integer':
|
|
14
|
+
sql = 'INTEGER';
|
|
15
|
+
break;
|
|
16
|
+
case 'smallint':
|
|
17
|
+
sql = 'SMALLINT';
|
|
18
|
+
break;
|
|
19
|
+
case 'double precision':
|
|
20
|
+
sql = 'DOUBLE PRECISION';
|
|
21
|
+
break;
|
|
22
|
+
case 'real':
|
|
23
|
+
case 'float4':
|
|
24
|
+
sql = 'REAL';
|
|
25
|
+
break;
|
|
26
|
+
case 'boolean':
|
|
27
|
+
sql = 'BOOLEAN';
|
|
28
|
+
break;
|
|
29
|
+
case 'text':
|
|
30
|
+
sql = 'TEXT';
|
|
31
|
+
break;
|
|
32
|
+
case 'varchar':
|
|
33
|
+
sql = col.maxLength ? `VARCHAR(${col.maxLength})` : 'TEXT';
|
|
34
|
+
break;
|
|
35
|
+
case 'char':
|
|
36
|
+
sql = col.maxLength ? `CHAR(${col.maxLength})` : 'CHAR(1)';
|
|
37
|
+
break;
|
|
38
|
+
case 'timestamptz':
|
|
39
|
+
sql = 'TIMESTAMPTZ';
|
|
40
|
+
break;
|
|
41
|
+
case 'timestamp':
|
|
42
|
+
sql = 'TIMESTAMP';
|
|
43
|
+
break;
|
|
44
|
+
case 'date':
|
|
45
|
+
sql = 'DATE';
|
|
46
|
+
break;
|
|
47
|
+
case 'jsonb':
|
|
48
|
+
sql = 'JSONB';
|
|
49
|
+
break;
|
|
50
|
+
case 'array':
|
|
51
|
+
sql = 'JSONB'; // Arrays stored as JSONB for flexibility
|
|
52
|
+
break;
|
|
53
|
+
case 'json':
|
|
54
|
+
sql = 'JSON';
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
sql = col.type.toUpperCase();
|
|
58
|
+
}
|
|
59
|
+
return sql;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Generate column definition for CREATE TABLE
|
|
63
|
+
*/
|
|
64
|
+
function columnDefinitionSql(col) {
|
|
65
|
+
const parts = [`"${col.name}"`];
|
|
66
|
+
// Type
|
|
67
|
+
parts.push(columnTypeToSql(col));
|
|
68
|
+
// CHECK constraint for enums
|
|
69
|
+
if (col.enumValues && col.enumValues.length > 0) {
|
|
70
|
+
const values = col.enumValues.map((v) => `'${v}'`).join(', ');
|
|
71
|
+
parts.push(`CHECK ("${col.name}" IN (${values}))`);
|
|
72
|
+
}
|
|
73
|
+
// Default
|
|
74
|
+
if (col.default !== null) {
|
|
75
|
+
parts.push(`DEFAULT ${col.default}`);
|
|
76
|
+
}
|
|
77
|
+
// NOT NULL
|
|
78
|
+
if (!col.nullable) {
|
|
79
|
+
parts.push('NOT NULL');
|
|
80
|
+
}
|
|
81
|
+
return parts.join(' ');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generate CREATE TABLE SQL
|
|
85
|
+
*/
|
|
86
|
+
function createTableSql(table) {
|
|
87
|
+
const statements = [];
|
|
88
|
+
// Column definitions
|
|
89
|
+
const colDefs = Array.from(table.columns.values()).map((col) => columnDefinitionSql(col));
|
|
90
|
+
// Primary key
|
|
91
|
+
if (table.primaryKey.length > 0) {
|
|
92
|
+
const pkCols = table.primaryKey.map((c) => `"${c}"`).join(', ');
|
|
93
|
+
colDefs.push(`PRIMARY KEY (${pkCols})`);
|
|
94
|
+
}
|
|
95
|
+
// Unique constraints
|
|
96
|
+
for (const unique of table.uniqueConstraints) {
|
|
97
|
+
const uniqueCols = unique.map((c) => `"${c}"`).join(', ');
|
|
98
|
+
colDefs.push(`UNIQUE (${uniqueCols})`);
|
|
99
|
+
}
|
|
100
|
+
// Single CREATE TABLE statement
|
|
101
|
+
const createTableStmt = `CREATE TABLE IF NOT EXISTS "${table.name}" (${colDefs.join(', ')});`;
|
|
102
|
+
statements.push(createTableStmt);
|
|
103
|
+
// Indexes (excluding primary key)
|
|
104
|
+
for (const idx of table.indexes) {
|
|
105
|
+
if (idx.name.endsWith('_pkey'))
|
|
106
|
+
continue;
|
|
107
|
+
const idxCols = idx.columns.map((c) => `"${c}"`).join(', ');
|
|
108
|
+
const unique = idx.unique ? 'UNIQUE ' : '';
|
|
109
|
+
statements.push(`CREATE ${unique}INDEX IF NOT EXISTS "${idx.name}" ON "${table.name}" (${idxCols});`);
|
|
110
|
+
}
|
|
111
|
+
return statements;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Generate ADD COLUMN SQL
|
|
115
|
+
*/
|
|
116
|
+
function addColumnSql(tableName, col) {
|
|
117
|
+
const lines = [];
|
|
118
|
+
// Special handling for arrays - use JSONB
|
|
119
|
+
if (col.type === 'array') {
|
|
120
|
+
lines.push(`ALTER TABLE "${tableName}" ADD COLUMN IF NOT EXISTS "${col.name}" JSONB${col.nullable ? '' : ' NOT NULL'}${col.default ? ` DEFAULT ${col.default}` : ''};`);
|
|
121
|
+
return lines;
|
|
122
|
+
}
|
|
123
|
+
const colDef = columnDefinitionSql(col);
|
|
124
|
+
// If NOT NULL without default, we need multi-step migration
|
|
125
|
+
if (!col.nullable && col.default === null) {
|
|
126
|
+
// First add as nullable
|
|
127
|
+
const nullableCol = { ...col, nullable: true };
|
|
128
|
+
lines.push(`ALTER TABLE "${tableName}" ADD COLUMN IF NOT EXISTS ${columnDefinitionSql(nullableCol)};`);
|
|
129
|
+
lines.push(`-- TODO: Backfill "${col.name}" with appropriate values before setting NOT NULL`);
|
|
130
|
+
lines.push(`-- UPDATE "${tableName}" SET "${col.name}" = <default_value> WHERE "${col.name}" IS NULL;`);
|
|
131
|
+
lines.push(`ALTER TABLE "${tableName}" ALTER COLUMN "${col.name}" SET NOT NULL;`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
lines.push(`ALTER TABLE "${tableName}" ADD COLUMN IF NOT EXISTS ${colDef};`);
|
|
135
|
+
}
|
|
136
|
+
return lines;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Convert a single diff operation to SQL
|
|
140
|
+
*/
|
|
141
|
+
export function operationToSql(op) {
|
|
142
|
+
switch (op.type) {
|
|
143
|
+
case 'create_table':
|
|
144
|
+
return createTableSql(op.table);
|
|
145
|
+
case 'drop_table':
|
|
146
|
+
return [`DROP TABLE IF EXISTS "${op.tableName}" CASCADE;`];
|
|
147
|
+
case 'add_column':
|
|
148
|
+
return addColumnSql(op.tableName, op.column);
|
|
149
|
+
case 'drop_column':
|
|
150
|
+
return [
|
|
151
|
+
`ALTER TABLE "${op.tableName}" DROP COLUMN IF EXISTS "${op.columnName}";`,
|
|
152
|
+
];
|
|
153
|
+
case 'alter_column_type': {
|
|
154
|
+
let toType;
|
|
155
|
+
let castType;
|
|
156
|
+
if (op.toType === 'array') {
|
|
157
|
+
// Check if this is a simple array type that can use native PostgreSQL arrays
|
|
158
|
+
const simpleArrayTypes = new Set([
|
|
159
|
+
'bigint',
|
|
160
|
+
'integer',
|
|
161
|
+
'smallint',
|
|
162
|
+
'double precision',
|
|
163
|
+
'real',
|
|
164
|
+
'text',
|
|
165
|
+
'varchar',
|
|
166
|
+
'char',
|
|
167
|
+
'boolean',
|
|
168
|
+
'timestamptz',
|
|
169
|
+
'timestamp',
|
|
170
|
+
'date',
|
|
171
|
+
]);
|
|
172
|
+
if (op.toArrayItemType && simpleArrayTypes.has(op.toArrayItemType)) {
|
|
173
|
+
// Use native PostgreSQL array type
|
|
174
|
+
const pgType = op.toArrayItemType.toUpperCase();
|
|
175
|
+
toType = `${pgType}[]`;
|
|
176
|
+
castType = `${op.toArrayItemType}[]`;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// Complex array (objects, nested arrays, etc.) - use JSONB
|
|
180
|
+
toType = 'JSONB';
|
|
181
|
+
castType = 'jsonb';
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
toType = op.toType.toUpperCase();
|
|
186
|
+
castType = op.toType;
|
|
187
|
+
}
|
|
188
|
+
return [
|
|
189
|
+
`-- WARNING: Type change from ${op.fromType} to ${op.toType} - verify data compatibility`,
|
|
190
|
+
`ALTER TABLE "${op.tableName}" ALTER COLUMN "${op.columnName}" TYPE ${toType} USING "${op.columnName}"::${castType};`,
|
|
191
|
+
];
|
|
192
|
+
}
|
|
193
|
+
case 'alter_column_nullable':
|
|
194
|
+
if (op.nullable) {
|
|
195
|
+
return [
|
|
196
|
+
`ALTER TABLE "${op.tableName}" ALTER COLUMN "${op.columnName}" DROP NOT NULL;`,
|
|
197
|
+
];
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
return [
|
|
201
|
+
`-- WARNING: Ensure no NULL values exist before running`,
|
|
202
|
+
`ALTER TABLE "${op.tableName}" ALTER COLUMN "${op.columnName}" SET NOT NULL;`,
|
|
203
|
+
];
|
|
204
|
+
}
|
|
205
|
+
case 'alter_column_default':
|
|
206
|
+
if (op.defaultValue === null) {
|
|
207
|
+
return [
|
|
208
|
+
`ALTER TABLE "${op.tableName}" ALTER COLUMN "${op.columnName}" DROP DEFAULT;`,
|
|
209
|
+
];
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
return [
|
|
213
|
+
`ALTER TABLE "${op.tableName}" ALTER COLUMN "${op.columnName}" SET DEFAULT ${op.defaultValue};`,
|
|
214
|
+
];
|
|
215
|
+
}
|
|
216
|
+
case 'update_check_constraint': {
|
|
217
|
+
const constraintName = `${op.tableName}_${op.columnName}_check`;
|
|
218
|
+
const newValues = op.newValues.map((v) => `'${v}'`).join(', ');
|
|
219
|
+
return [
|
|
220
|
+
`-- Update CHECK constraint for "${op.columnName}": [${op.oldValues.join(', ')}] -> [${op.newValues.join(', ')}]`,
|
|
221
|
+
`ALTER TABLE "${op.tableName}" DROP CONSTRAINT IF EXISTS "${constraintName}";`,
|
|
222
|
+
`ALTER TABLE "${op.tableName}" ADD CONSTRAINT "${constraintName}" CHECK ("${op.columnName}" IN (${newValues}));`,
|
|
223
|
+
];
|
|
224
|
+
}
|
|
225
|
+
case 'add_index': {
|
|
226
|
+
const idxCols = op.index.columns.map((c) => `"${c}"`).join(', ');
|
|
227
|
+
const unique = op.index.unique ? 'UNIQUE ' : '';
|
|
228
|
+
return [
|
|
229
|
+
`CREATE ${unique}INDEX IF NOT EXISTS "${op.index.name}" ON "${op.tableName}" (${idxCols});`,
|
|
230
|
+
];
|
|
231
|
+
}
|
|
232
|
+
case 'drop_index':
|
|
233
|
+
return [`DROP INDEX IF EXISTS "${op.indexName}";`];
|
|
234
|
+
case 'add_unique_constraint': {
|
|
235
|
+
const cols = op.columns.map((c) => `"${c}"`).join(', ');
|
|
236
|
+
const constraintName = `${op.tableName}_${op.columns.join('_')}_unique`;
|
|
237
|
+
return [
|
|
238
|
+
`ALTER TABLE "${op.tableName}" ADD CONSTRAINT "${constraintName}" UNIQUE (${cols});`,
|
|
239
|
+
];
|
|
240
|
+
}
|
|
241
|
+
case 'drop_unique_constraint': {
|
|
242
|
+
const constraintName = `${op.tableName}_${op.columns.join('_')}_unique`;
|
|
243
|
+
return [
|
|
244
|
+
`ALTER TABLE "${op.tableName}" DROP CONSTRAINT IF EXISTS "${constraintName}";`,
|
|
245
|
+
];
|
|
246
|
+
}
|
|
247
|
+
case 'add_foreign_key': {
|
|
248
|
+
const fkName = op.fk.constraintName || `${op.tableName}_${op.fk.column}_fkey`;
|
|
249
|
+
return [
|
|
250
|
+
`ALTER TABLE "${op.tableName}" ADD CONSTRAINT "${fkName}" FOREIGN KEY ("${op.fk.column}") REFERENCES "${op.fk.referencedTable}" ("${op.fk.referencedColumn}");`,
|
|
251
|
+
];
|
|
252
|
+
}
|
|
253
|
+
case 'drop_foreign_key':
|
|
254
|
+
return [
|
|
255
|
+
`ALTER TABLE "${op.tableName}" DROP CONSTRAINT IF EXISTS "${op.constraintName}";`,
|
|
256
|
+
];
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Generate full migration SQL from operations
|
|
261
|
+
*/
|
|
262
|
+
export function generateMigrationSql(ops, _includeDestructive = false) {
|
|
263
|
+
const safeLines = [];
|
|
264
|
+
const destructiveLines = [];
|
|
265
|
+
for (const op of ops) {
|
|
266
|
+
const sql = operationToSql(op);
|
|
267
|
+
// Categorize
|
|
268
|
+
const isDestructive = op.type === 'drop_table' ||
|
|
269
|
+
op.type === 'drop_column' ||
|
|
270
|
+
op.type === 'drop_index' ||
|
|
271
|
+
op.type === 'drop_unique_constraint' ||
|
|
272
|
+
op.type === 'drop_foreign_key';
|
|
273
|
+
if (isDestructive) {
|
|
274
|
+
destructiveLines.push(...sql, '');
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
safeLines.push(...sql, '');
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const timestamp = new Date().toISOString();
|
|
281
|
+
const safe = safeLines.length > 0
|
|
282
|
+
? [
|
|
283
|
+
'-- Schema Migration (Safe Operations)',
|
|
284
|
+
`-- Generated: ${timestamp}`,
|
|
285
|
+
'',
|
|
286
|
+
'BEGIN;',
|
|
287
|
+
'',
|
|
288
|
+
...safeLines,
|
|
289
|
+
'COMMIT;',
|
|
290
|
+
].join('\n')
|
|
291
|
+
: '';
|
|
292
|
+
const destructive = destructiveLines.length > 0
|
|
293
|
+
? [
|
|
294
|
+
'-- Schema Migration (DESTRUCTIVE Operations)',
|
|
295
|
+
`-- Generated: ${timestamp}`,
|
|
296
|
+
'-- WARNING: These operations will DELETE data!',
|
|
297
|
+
'',
|
|
298
|
+
'BEGIN;',
|
|
299
|
+
'',
|
|
300
|
+
...destructiveLines,
|
|
301
|
+
'COMMIT;',
|
|
302
|
+
].join('\n')
|
|
303
|
+
: '';
|
|
304
|
+
return { safe, destructive };
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=generateSql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateSql.js","sourceRoot":"","sources":["../../../../libs/lockstep-pg/src/generateSql.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { detectDrift } from './drift';
|
|
2
|
+
export type { Drift, DataformConfig } from './drift';
|
|
3
|
+
export { driftToSql, generateMigration } from './migrate';
|
|
4
|
+
export { generateCreateTablesSql } from './form';
|
|
5
|
+
export { generateSeedSql } from './seed';
|
|
6
|
+
export { introspectTable, introspectDatabase, modelToIntrospected, normalizeDbType, } from './introspect';
|
|
7
|
+
export type { IntrospectedColumn, IntrospectedIndex, IntrospectedForeignKey, IntrospectedTable, } from './introspect';
|
|
8
|
+
export { diffTable, diffDatabase, categorizeOperations } from './diff';
|
|
9
|
+
export type { DiffOperation } from './diff';
|
|
10
|
+
export { operationToSql, generateMigrationSql } from './generateSql';
|
|
11
|
+
export { setupTable } from './setupTable';
|
|
12
|
+
export { buildTableCreationCommand } from './createTable';
|
|
13
|
+
export { buildTableIndexCommands } from './buildTableIndexCommand';
|
|
14
|
+
export { buildTableTriggerCommands } from './buildTableTriggerCommands';
|
|
15
|
+
export { mapColumnType } from './mapColumnType';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-pg/src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGzC,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACX,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Core drift detection
|
|
2
|
+
export { detectDrift } from './drift';
|
|
3
|
+
// Migration generation (drift-based)
|
|
4
|
+
export { driftToSql, generateMigration } from './migrate';
|
|
5
|
+
// Table creation SQL
|
|
6
|
+
export { generateCreateTablesSql } from './form';
|
|
7
|
+
// Seed data generation
|
|
8
|
+
export { generateSeedSql } from './seed';
|
|
9
|
+
// Introspection
|
|
10
|
+
export { introspectTable, introspectDatabase, modelToIntrospected, normalizeDbType, } from './introspect';
|
|
11
|
+
// Diff engine
|
|
12
|
+
export { diffTable, diffDatabase, categorizeOperations } from './diff';
|
|
13
|
+
// SQL generation from diff operations
|
|
14
|
+
export { operationToSql, generateMigrationSql } from './generateSql';
|
|
15
|
+
// Table setup utilities
|
|
16
|
+
export { setupTable } from './setupTable';
|
|
17
|
+
export { buildTableCreationCommand } from './createTable';
|
|
18
|
+
export { buildTableIndexCommands } from './buildTableIndexCommand';
|
|
19
|
+
export { buildTableTriggerCommands } from './buildTableTriggerCommands';
|
|
20
|
+
export { mapColumnType } from './mapColumnType';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/lockstep-pg/src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE1D,qBAAqB;AACrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAEjD,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,gBAAgB;AAChB,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GACf,MAAM,cAAc,CAAC;AAQtB,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAGvE,sCAAsC;AACtC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErE,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Introspect database tables and convert to PostgresTableModel format
|
|
3
|
+
*/
|
|
4
|
+
import { Client } from 'pg';
|
|
5
|
+
import type { PostgresTableModel, PostgresRecordModel } from '@lyku/lockstep-core';
|
|
6
|
+
export interface IntrospectedColumn {
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
nullable: boolean;
|
|
10
|
+
default: string | null;
|
|
11
|
+
maxLength: number | null;
|
|
12
|
+
checkConstraint: string | null;
|
|
13
|
+
enumValues: string[] | null;
|
|
14
|
+
arrayItemType: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface IntrospectedIndex {
|
|
17
|
+
name: string;
|
|
18
|
+
columns: string[];
|
|
19
|
+
unique: boolean;
|
|
20
|
+
definition: string;
|
|
21
|
+
}
|
|
22
|
+
export interface IntrospectedForeignKey {
|
|
23
|
+
column: string;
|
|
24
|
+
referencedTable: string;
|
|
25
|
+
referencedColumn: string;
|
|
26
|
+
constraintName: string;
|
|
27
|
+
}
|
|
28
|
+
export interface IntrospectedTable {
|
|
29
|
+
name: string;
|
|
30
|
+
columns: Map<string, IntrospectedColumn>;
|
|
31
|
+
indexes: IntrospectedIndex[];
|
|
32
|
+
primaryKey: string[];
|
|
33
|
+
uniqueConstraints: string[][];
|
|
34
|
+
foreignKeys: IntrospectedForeignKey[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Normalize PostgreSQL type to our canonical form
|
|
38
|
+
*/
|
|
39
|
+
export declare function normalizeDbType(pgType: string, udtName: string): {
|
|
40
|
+
type: string;
|
|
41
|
+
arrayItemType: string | null;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Introspect a single table from the database
|
|
45
|
+
*/
|
|
46
|
+
export declare function introspectTable(client: Client, tableName: string): Promise<IntrospectedTable>;
|
|
47
|
+
/**
|
|
48
|
+
* Introspect all tables from the database
|
|
49
|
+
*/
|
|
50
|
+
export declare function introspectDatabase(client: Client): Promise<Map<string, IntrospectedTable>>;
|
|
51
|
+
/**
|
|
52
|
+
* Convert a code-defined PostgresTableModel to our IntrospectedTable format
|
|
53
|
+
* for comparison purposes
|
|
54
|
+
*/
|
|
55
|
+
export declare function modelToIntrospected(tableName: string, model: PostgresTableModel<PostgresRecordModel>): IntrospectedTable;
|
|
56
|
+
//# sourceMappingURL=introspect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-pg/src/introspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,KAAK,EACX,kBAAkB,EAClB,mBAAmB,EAEnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,EAAE,EAAE,CAAC;IAC9B,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACtC;AA4DD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAyDhD;AA6CD;;GAEG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC,CA0K5B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAgBzC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAC5C,iBAAiB,CA0InB"}
|