@zmdb/sqlite 1.0.0-beta.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/LICENSE +674 -0
- package/README.md +108 -0
- package/dist/dialect.d.ts +2 -0
- package/dist/dialect.d.ts.map +1 -0
- package/dist/dialect.js +93 -0
- package/dist/dialect.js.map +1 -0
- package/dist/driver.d.ts +21 -0
- package/dist/driver.d.ts.map +1 -0
- package/dist/driver.js +133 -0
- package/dist/driver.js.map +1 -0
- package/dist/embedded.d.ts +3 -0
- package/dist/embedded.d.ts.map +1 -0
- package/dist/embedded.js +2 -0
- package/dist/embedded.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/introspector.d.ts +5 -0
- package/dist/introspector.d.ts.map +1 -0
- package/dist/introspector.js +392 -0
- package/dist/introspector.js.map +1 -0
- package/dist/migrations.d.ts +3 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +349 -0
- package/dist/migrations.js.map +1 -0
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +2 -0
- package/dist/node.js.map +1 -0
- package/package.json +61 -0
- package/src/dialect.ts +95 -0
- package/src/driver.ts +158 -0
- package/src/embedded.ts +2 -0
- package/src/index.ts +14 -0
- package/src/introspector.ts +513 -0
- package/src/migrations.ts +500 -0
- package/src/node.ts +1 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { action, CatalogRowError, deterministicForeignKeyName, flagField, integerField, nullableTextField, query, sortByName, sortWarnings, splitSqlList, tableSelected, textField, normalizeDriftSnapshot, } from '@zmdb/migrations/introspect/runtime';
|
|
2
|
+
function placeholders(count) {
|
|
3
|
+
return Array.from({ length: count }, () => '?').join(', ');
|
|
4
|
+
}
|
|
5
|
+
function sqliteSchemas(options) {
|
|
6
|
+
const schemas = options.schemas ?? ['main'];
|
|
7
|
+
if (schemas.length === 0)
|
|
8
|
+
return ['main'];
|
|
9
|
+
return [...new Set(schemas)].toSorted();
|
|
10
|
+
}
|
|
11
|
+
function parseTable(row, index) {
|
|
12
|
+
const catalog = 'sqlite pragma_table_list';
|
|
13
|
+
const type = textField(row, 'type', catalog, index);
|
|
14
|
+
if (type !== 'table')
|
|
15
|
+
throw new CatalogRowError(catalog, index, 'type', '"table"', type);
|
|
16
|
+
return {
|
|
17
|
+
schema: textField(row, 'schema', catalog, index),
|
|
18
|
+
name: textField(row, 'name', catalog, index),
|
|
19
|
+
withoutRowid: flagField(row, 'wr', catalog, index),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function parseColumn(row, index) {
|
|
23
|
+
const catalog = 'sqlite pragma_table_xinfo';
|
|
24
|
+
const hidden = integerField(row, 'hidden', catalog, index);
|
|
25
|
+
if (hidden !== 0 && hidden !== 2 && hidden !== 3) {
|
|
26
|
+
throw new CatalogRowError(catalog, index, 'hidden', '0, 2 or 3 for an ordinary table', hidden);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
ordinal: integerField(row, 'cid', catalog, index),
|
|
30
|
+
name: textField(row, 'name', catalog, index),
|
|
31
|
+
catalogType: textField(row, 'type', catalog, index),
|
|
32
|
+
notNull: flagField(row, 'notnull', catalog, index),
|
|
33
|
+
default: nullableTextField(row, 'dflt_value', catalog, index),
|
|
34
|
+
primaryKeyOrdinal: integerField(row, 'pk', catalog, index),
|
|
35
|
+
hidden,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function parseForeignKey(row, index) {
|
|
39
|
+
const catalog = 'sqlite pragma_foreign_key_list';
|
|
40
|
+
return {
|
|
41
|
+
id: integerField(row, 'id', catalog, index),
|
|
42
|
+
sequence: integerField(row, 'seq', catalog, index),
|
|
43
|
+
targetTable: textField(row, 'table', catalog, index),
|
|
44
|
+
column: textField(row, 'from', catalog, index),
|
|
45
|
+
targetColumn: nullableTextField(row, 'to', catalog, index),
|
|
46
|
+
onUpdate: textField(row, 'on_update', catalog, index),
|
|
47
|
+
onDelete: textField(row, 'on_delete', catalog, index),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function parseIndex(row, index) {
|
|
51
|
+
const catalog = 'sqlite pragma_index_list';
|
|
52
|
+
const origin = textField(row, 'origin', catalog, index);
|
|
53
|
+
if (origin !== 'c' && origin !== 'u' && origin !== 'pk') {
|
|
54
|
+
throw new CatalogRowError(catalog, index, 'origin', '"c", "u" or "pk"', origin);
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
name: textField(row, 'name', catalog, index),
|
|
58
|
+
unique: flagField(row, 'unique', catalog, index),
|
|
59
|
+
origin,
|
|
60
|
+
partial: flagField(row, 'partial', catalog, index),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function parseIndexColumn(row, index) {
|
|
64
|
+
const catalog = 'sqlite pragma_index_info';
|
|
65
|
+
return {
|
|
66
|
+
sequence: integerField(row, 'seqno', catalog, index),
|
|
67
|
+
columnId: integerField(row, 'cid', catalog, index),
|
|
68
|
+
name: nullableTextField(row, 'name', catalog, index),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function sqliteType(declared, serial) {
|
|
72
|
+
const normalized = declared.trim().toUpperCase();
|
|
73
|
+
if (serial)
|
|
74
|
+
return { type: 'serial' };
|
|
75
|
+
if (normalized === 'INTEGER')
|
|
76
|
+
return { type: 'integer' };
|
|
77
|
+
if (normalized === 'INT')
|
|
78
|
+
return { type: 'integer' };
|
|
79
|
+
if (normalized === 'TEXT')
|
|
80
|
+
return { type: 'text' };
|
|
81
|
+
const varchar = /^VARCHAR\s*\(\s*(\d+)\s*\)$/.exec(normalized);
|
|
82
|
+
if (varchar) {
|
|
83
|
+
const lengthText = varchar[1];
|
|
84
|
+
if (lengthText !== undefined) {
|
|
85
|
+
return {
|
|
86
|
+
type: 'varchar',
|
|
87
|
+
length: Number(lengthText),
|
|
88
|
+
warning: `SQLite does not enforce the declared length ${declared}; the generated declaration will`,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (normalized === 'REAL' ||
|
|
93
|
+
normalized === 'NUMERIC' ||
|
|
94
|
+
/^DECIMAL(?:\s*\(\s*\d+\s*(?:,\s*\d+\s*)?\))?$/.test(normalized)) {
|
|
95
|
+
return { type: 'numeric' };
|
|
96
|
+
}
|
|
97
|
+
if (normalized === 'BLOB' || normalized.length === 0) {
|
|
98
|
+
return {
|
|
99
|
+
type: declared,
|
|
100
|
+
warning: normalized.length === 0
|
|
101
|
+
? 'SQLite column has no declared type; BLOB affinity cannot be represented by the current declared SQL type vocabulary'
|
|
102
|
+
: `SQLite type ${declared} cannot be represented by the current declared SQL type vocabulary`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// SQLite's declared type is open text. These are SQLite's own affinity rules,
|
|
106
|
+
// not guesses at application semantics; catalogType preserves the lossy source.
|
|
107
|
+
if (normalized.includes('INT')) {
|
|
108
|
+
return { type: 'integer', warning: `SQLite declared type ${declared} was normalized by INTEGER affinity` };
|
|
109
|
+
}
|
|
110
|
+
if (normalized.includes('CHAR') || normalized.includes('CLOB') || normalized.includes('TEXT')) {
|
|
111
|
+
return { type: 'text', warning: `SQLite declared type ${declared} was normalized by TEXT affinity` };
|
|
112
|
+
}
|
|
113
|
+
if (normalized.includes('BLOB')) {
|
|
114
|
+
return {
|
|
115
|
+
type: declared,
|
|
116
|
+
warning: `SQLite declared type ${declared} has BLOB affinity and cannot be represented by the current declared SQL type vocabulary`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (normalized.includes('REAL') || normalized.includes('FLOA') || normalized.includes('DOUB')) {
|
|
120
|
+
return { type: 'numeric', warning: `SQLite declared type ${declared} was normalized by REAL affinity` };
|
|
121
|
+
}
|
|
122
|
+
return { type: 'numeric', warning: `SQLite declared type ${declared} was normalized by NUMERIC affinity` };
|
|
123
|
+
}
|
|
124
|
+
function snapshotColumns(table, rows, primaryKeyIndexed, warnings) {
|
|
125
|
+
const primaryKey = rows
|
|
126
|
+
.filter(row => row.primaryKeyOrdinal > 0)
|
|
127
|
+
.toSorted((left, right) => left.primaryKeyOrdinal - right.primaryKeyOrdinal);
|
|
128
|
+
const rowidAlias = !table.withoutRowid &&
|
|
129
|
+
!primaryKeyIndexed &&
|
|
130
|
+
primaryKey.length === 1 &&
|
|
131
|
+
primaryKey[0]?.catalogType.trim().toUpperCase() === 'INTEGER';
|
|
132
|
+
return rows
|
|
133
|
+
.map(row => {
|
|
134
|
+
const serial = rowidAlias && row.primaryKeyOrdinal === 1;
|
|
135
|
+
const mapped = sqliteType(row.catalogType, serial);
|
|
136
|
+
if (mapped.warning !== undefined) {
|
|
137
|
+
warnings.push({ table: table.name, column: row.name, reason: mapped.warning });
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
name: row.name,
|
|
141
|
+
type: mapped.type,
|
|
142
|
+
catalogType: row.catalogType,
|
|
143
|
+
nullable: !row.notNull && !serial,
|
|
144
|
+
primaryKey: row.primaryKeyOrdinal > 0,
|
|
145
|
+
...(mapped.length === undefined ? {} : { length: mapped.length }),
|
|
146
|
+
...(row.default === null ? {} : { default: row.default }),
|
|
147
|
+
};
|
|
148
|
+
})
|
|
149
|
+
.toSorted((left, right) => left.name.localeCompare(right.name));
|
|
150
|
+
}
|
|
151
|
+
function indexSqlSource(schema) {
|
|
152
|
+
if (schema === 'main')
|
|
153
|
+
return 'sqlite_schema';
|
|
154
|
+
if (schema === 'temp')
|
|
155
|
+
return 'sqlite_temp_schema';
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
function indexParts(sql) {
|
|
159
|
+
const open = sql.indexOf('(');
|
|
160
|
+
if (open === -1)
|
|
161
|
+
return { columns: [] };
|
|
162
|
+
let depth = 0;
|
|
163
|
+
let quoteCharacter;
|
|
164
|
+
let close = -1;
|
|
165
|
+
for (let index = open; index < sql.length; index += 1) {
|
|
166
|
+
const character = sql[index];
|
|
167
|
+
if (quoteCharacter !== undefined) {
|
|
168
|
+
if (character === quoteCharacter) {
|
|
169
|
+
if (sql[index + 1] === quoteCharacter)
|
|
170
|
+
index += 1;
|
|
171
|
+
else
|
|
172
|
+
quoteCharacter = undefined;
|
|
173
|
+
}
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (character === "'" || character === '"' || character === '`') {
|
|
177
|
+
quoteCharacter = character;
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
if (character === '(')
|
|
181
|
+
depth += 1;
|
|
182
|
+
else if (character === ')') {
|
|
183
|
+
depth -= 1;
|
|
184
|
+
if (depth === 0) {
|
|
185
|
+
close = index;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (close === -1)
|
|
191
|
+
return { columns: [] };
|
|
192
|
+
const tail = sql.slice(close + 1).trim();
|
|
193
|
+
const where = /^WHERE\s+(.+)$/is.exec(tail)?.[1]?.trim();
|
|
194
|
+
return {
|
|
195
|
+
columns: splitSqlList(sql.slice(open + 1, close)),
|
|
196
|
+
...(where === undefined ? {} : { where }),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
async function readIndexSql(driver, schema, name) {
|
|
200
|
+
const source = indexSqlSource(schema);
|
|
201
|
+
if (source === undefined)
|
|
202
|
+
return undefined;
|
|
203
|
+
const rows = await driver.execute(query(`SELECT sql FROM ${source} WHERE type = 'index' AND name = ?`, [name]));
|
|
204
|
+
if (rows.length === 0)
|
|
205
|
+
return undefined;
|
|
206
|
+
if (rows.length !== 1) {
|
|
207
|
+
throw new TypeError(`sqlite catalog returned ${String(rows.length)} definitions for index "${name}"`);
|
|
208
|
+
}
|
|
209
|
+
return nullableTextField(rows[0] ?? {}, 'sql', `sqlite ${source}`, 0) ?? undefined;
|
|
210
|
+
}
|
|
211
|
+
async function readIndexes(driver, table, warnings) {
|
|
212
|
+
const rows = await driver.execute(query('SELECT seq, name, "unique", origin, partial FROM pragma_index_list(?, ?)', [table.name, table.schema]));
|
|
213
|
+
const indexes = [];
|
|
214
|
+
let primaryKeyIndexed = false;
|
|
215
|
+
for (const [rowIndex, raw] of rows.entries()) {
|
|
216
|
+
const index = parseIndex(raw, rowIndex);
|
|
217
|
+
if (index.origin === 'pk') {
|
|
218
|
+
primaryKeyIndexed = true;
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
const columnRows = await driver.execute(query('SELECT seqno, cid, name FROM pragma_index_info(?, ?) ORDER BY seqno', [index.name, table.schema]));
|
|
222
|
+
const parsedColumns = columnRows.map(parseIndexColumn).toSorted((left, right) => left.sequence - right.sequence);
|
|
223
|
+
const sql = await readIndexSql(driver, table.schema, index.name);
|
|
224
|
+
const parts = sql === undefined ? { columns: [] } : indexParts(sql);
|
|
225
|
+
if (index.partial !== (parts.where !== undefined)) {
|
|
226
|
+
throw new TypeError(`sqlite index "${index.name}" reports partial=${String(index.partial)} but its CREATE INDEX text ` +
|
|
227
|
+
`${parts.where === undefined ? 'has no WHERE clause' : 'has a WHERE clause'}`);
|
|
228
|
+
}
|
|
229
|
+
const columns = parsedColumns.map(column => {
|
|
230
|
+
if (column.name !== null && column.columnId >= 0)
|
|
231
|
+
return column.name;
|
|
232
|
+
const expression = parts.columns[column.sequence];
|
|
233
|
+
if (expression === undefined) {
|
|
234
|
+
throw new TypeError(`sqlite index "${index.name}" contains an expression but its CREATE INDEX text is unavailable`);
|
|
235
|
+
}
|
|
236
|
+
warnings.push({
|
|
237
|
+
table: table.name,
|
|
238
|
+
reason: `SQLite index "${index.name}" expression was parsed from sqlite_schema SQL because PRAGMA index_info reports only cid = -2`,
|
|
239
|
+
});
|
|
240
|
+
return { expr: expression };
|
|
241
|
+
});
|
|
242
|
+
indexes.push({
|
|
243
|
+
name: index.name,
|
|
244
|
+
columns,
|
|
245
|
+
unique: index.unique,
|
|
246
|
+
...(parts.where === undefined ? {} : { where: parts.where }),
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
return { indexes: sortByName(indexes), primaryKeyIndexed };
|
|
250
|
+
}
|
|
251
|
+
async function readForeignKeys(driver, table, primaryKeys) {
|
|
252
|
+
const rows = await driver.execute(query('SELECT id, seq, "table", "from", "to", on_update, on_delete ' +
|
|
253
|
+
'FROM pragma_foreign_key_list(?, ?) ORDER BY id, seq', [table.name, table.schema]));
|
|
254
|
+
const grouped = new Map();
|
|
255
|
+
for (const [index, row] of rows.entries()) {
|
|
256
|
+
const parsed = parseForeignKey(row, index);
|
|
257
|
+
const values = grouped.get(parsed.id);
|
|
258
|
+
if (values)
|
|
259
|
+
values.push(parsed);
|
|
260
|
+
else
|
|
261
|
+
grouped.set(parsed.id, [parsed]);
|
|
262
|
+
}
|
|
263
|
+
const foreignKeys = [];
|
|
264
|
+
for (const values of grouped.values()) {
|
|
265
|
+
values.sort((left, right) => left.sequence - right.sequence);
|
|
266
|
+
const first = values[0];
|
|
267
|
+
if (!first)
|
|
268
|
+
continue;
|
|
269
|
+
const columns = values.map(value => value.column);
|
|
270
|
+
const inferredTarget = primaryKeys.get(first.targetTable) ?? [];
|
|
271
|
+
const targetColumns = values.map((value, index) => value.targetColumn ?? inferredTarget[index]);
|
|
272
|
+
if (targetColumns.some(column => column === undefined)) {
|
|
273
|
+
throw new TypeError(`sqlite foreign key on "${table.name}" omits target columns and "${first.targetTable}" has no matching primary key`);
|
|
274
|
+
}
|
|
275
|
+
foreignKeys.push({
|
|
276
|
+
name: deterministicForeignKeyName(table.name, columns),
|
|
277
|
+
columns,
|
|
278
|
+
targetTable: first.targetTable,
|
|
279
|
+
targetColumns: targetColumns.filter(column => column !== undefined),
|
|
280
|
+
onDelete: action(first.onDelete, 'sqlite pragma_foreign_key_list', first.id, 'on_delete'),
|
|
281
|
+
onUpdate: action(first.onUpdate, 'sqlite pragma_foreign_key_list', first.id, 'on_update'),
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
return sortByName(foreignKeys);
|
|
285
|
+
}
|
|
286
|
+
async function sqliteSnapshot(driver, options = {}) {
|
|
287
|
+
const schemas = sqliteSchemas(options);
|
|
288
|
+
const rawTables = await driver.execute(query(`SELECT schema, name, type, wr FROM pragma_table_list ` +
|
|
289
|
+
`WHERE schema IN (${placeholders(schemas.length)}) AND type = 'table' ORDER BY schema, name`, schemas));
|
|
290
|
+
const tables = rawTables
|
|
291
|
+
.map(parseTable)
|
|
292
|
+
.filter(table => !table.name.startsWith('sqlite_') && tableSelected(table.name, options));
|
|
293
|
+
const duplicate = tables.find((table, index) => tables.findIndex(candidate => candidate.name === table.name) !== index);
|
|
294
|
+
if (duplicate !== undefined) {
|
|
295
|
+
throw new TypeError(`sqlite introspection cannot represent table "${duplicate.name}" from more than one schema in a schema-neutral snapshot`);
|
|
296
|
+
}
|
|
297
|
+
const warnings = [];
|
|
298
|
+
const columns = new Map();
|
|
299
|
+
const primaryKeys = new Map();
|
|
300
|
+
for (const table of tables) {
|
|
301
|
+
const rawColumns = await driver.execute(query('SELECT cid, name, type, "notnull", dflt_value, pk, hidden FROM pragma_table_xinfo(?, ?) ORDER BY cid', [
|
|
302
|
+
table.name,
|
|
303
|
+
table.schema,
|
|
304
|
+
]));
|
|
305
|
+
const parsed = rawColumns.map(parseColumn).toSorted((left, right) => left.ordinal - right.ordinal);
|
|
306
|
+
for (const column of parsed) {
|
|
307
|
+
if (column.hidden === 0)
|
|
308
|
+
continue;
|
|
309
|
+
warnings.push({
|
|
310
|
+
table: table.name,
|
|
311
|
+
column: column.name,
|
|
312
|
+
reason: `SQLite ${column.hidden === 3 ? 'stored' : 'virtual'} generated column is omitted because ` +
|
|
313
|
+
'the portable schema snapshot does not carry generated expressions',
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
const ordinary = parsed.filter(column => column.hidden === 0);
|
|
317
|
+
columns.set(`${table.schema}\0${table.name}`, ordinary);
|
|
318
|
+
primaryKeys.set(table.name, ordinary
|
|
319
|
+
.filter(column => column.primaryKeyOrdinal > 0)
|
|
320
|
+
.toSorted((left, right) => left.primaryKeyOrdinal - right.primaryKeyOrdinal)
|
|
321
|
+
.map(column => column.name));
|
|
322
|
+
}
|
|
323
|
+
const snapshots = [];
|
|
324
|
+
const foreignKeyMode = await driver.execute(query('PRAGMA foreign_keys'));
|
|
325
|
+
const mode = foreignKeyMode[0];
|
|
326
|
+
if (mode === undefined)
|
|
327
|
+
throw new TypeError('sqlite PRAGMA foreign_keys returned no row');
|
|
328
|
+
if (!flagField(mode, 'foreign_keys', 'sqlite PRAGMA foreign_keys', 0)) {
|
|
329
|
+
warnings.push({
|
|
330
|
+
table: '*',
|
|
331
|
+
reason: 'SQLite foreign key enforcement is disabled on this connection (PRAGMA foreign_keys = 0)',
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
for (const table of tables) {
|
|
335
|
+
const tableColumns = columns.get(`${table.schema}\0${table.name}`) ?? [];
|
|
336
|
+
const indexResult = await readIndexes(driver, table, warnings);
|
|
337
|
+
snapshots.push({
|
|
338
|
+
name: table.name,
|
|
339
|
+
columns: snapshotColumns(table, tableColumns, indexResult.primaryKeyIndexed, warnings),
|
|
340
|
+
primaryKey: primaryKeys.get(table.name) ?? [],
|
|
341
|
+
foreignKeys: await readForeignKeys(driver, table, primaryKeys),
|
|
342
|
+
indexes: indexResult.indexes,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
return {
|
|
346
|
+
version: 1,
|
|
347
|
+
tables: sortByName(snapshots),
|
|
348
|
+
extensions: [],
|
|
349
|
+
warnings: sortWarnings(warnings),
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
const databaseName = 'sqlite';
|
|
353
|
+
const NORMALIZED_DECLARED_TYPES = Object.freeze({
|
|
354
|
+
serial: 'serial',
|
|
355
|
+
integer: 'integer',
|
|
356
|
+
bigint: 'integer',
|
|
357
|
+
numeric: 'numeric',
|
|
358
|
+
text: 'text',
|
|
359
|
+
varchar: 'text',
|
|
360
|
+
boolean: 'integer',
|
|
361
|
+
timestamp: 'text',
|
|
362
|
+
json: 'text',
|
|
363
|
+
jsonEnum: 'text',
|
|
364
|
+
});
|
|
365
|
+
function normalizeDeclaredColumn(column) {
|
|
366
|
+
if (typeof column.type !== 'string')
|
|
367
|
+
return column;
|
|
368
|
+
const mapped = Reflect.get(NORMALIZED_DECLARED_TYPES, column.type);
|
|
369
|
+
if (typeof mapped !== 'string')
|
|
370
|
+
return column;
|
|
371
|
+
if (column.type !== 'varchar')
|
|
372
|
+
return { ...column, type: mapped };
|
|
373
|
+
const { length: _length, ...withoutLength } = column;
|
|
374
|
+
return { ...withoutLength, type: mapped };
|
|
375
|
+
}
|
|
376
|
+
function normalizeSqliteDriftSnapshot(snapshot, role) {
|
|
377
|
+
const normalized = normalizeDriftSnapshot(snapshot, role);
|
|
378
|
+
return {
|
|
379
|
+
...normalized,
|
|
380
|
+
tables: normalized.tables.map(table => ({
|
|
381
|
+
...table,
|
|
382
|
+
columns: role === 'declared' ? table.columns.map(normalizeDeclaredColumn) : table.columns,
|
|
383
|
+
indexes: table.indexes ?? [],
|
|
384
|
+
})),
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
export const sqliteIntrospector = {
|
|
388
|
+
name: databaseName,
|
|
389
|
+
snapshot: sqliteSnapshot,
|
|
390
|
+
normalizeForDrift: normalizeSqliteDriftSnapshot,
|
|
391
|
+
};
|
|
392
|
+
//# sourceMappingURL=introspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspector.js","sourceRoot":"","sources":["../src/introspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,gBAAgB,EAKtB,MAAM,WAAW,CAAC;AAudnB,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,CAWvD,CAAC"}
|