@rudderjs/database 1.5.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/native/schema/introspect.d.ts +4 -0
- package/dist/native/schema/introspect.d.ts.map +1 -1
- package/dist/native/schema/introspect.js +7 -0
- package/dist/native/schema/introspect.js.map +1 -1
- package/dist/native/schema/rebuild.d.ts.map +1 -1
- package/dist/native/schema/rebuild.js +30 -1
- package/dist/native/schema/rebuild.js.map +1 -1
- package/package.json +2 -2
|
@@ -27,6 +27,10 @@ export declare function readColumns(executor: Executor, dialect: Dialect, table:
|
|
|
27
27
|
* from PRIMARY KEY / UNIQUE constraints have a null `sql` and are excluded — the
|
|
28
28
|
* rebuilt table re-derives those from its own definition). */
|
|
29
29
|
export declare function readIndexSql(executor: Executor, table: string): Promise<string[]>;
|
|
30
|
+
/** The raw `CREATE TABLE` SQL for `table` from `sqlite_master`, or `''`. Used by
|
|
31
|
+
* the rebuild to detect constraints (CHECK) that `PRAGMA` introspection can't
|
|
32
|
+
* surface and the column-by-column reconstruction would therefore drop. */
|
|
33
|
+
export declare function readTableSql(executor: Executor, table: string): Promise<string>;
|
|
30
34
|
/** Whether `table` uses `AUTOINCREMENT` (registered in `sqlite_sequence`). The
|
|
31
35
|
* `sqlite_sequence` table only exists once some table declares AUTOINCREMENT,
|
|
32
36
|
* so a missing-table error means "no". */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../../src/native/schema/introspect.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAK,MAAM,CAAA;IACf,+DAA+D;IAC/D,IAAI,EAAK,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB;;sCAEkC;IAClC,IAAI,EAAK,MAAM,GAAG,IAAI,CAAA;IACtB,mEAAmE;IACnE,EAAE,EAAO,MAAM,CAAA;CAChB;AAED;;;uBAGuB;AACvB,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BxF;AAED;;;sEAGsE;AACtE,wBAAsB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA8C3G;AAED;;+DAE+D;AAC/D,wBAAsB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMvF;AAED;;2CAE2C;AAC3C,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF"}
|
|
1
|
+
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../../src/native/schema/introspect.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAK,MAAM,CAAA;IACf,+DAA+D;IAC/D,IAAI,EAAK,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB;;sCAEkC;IAClC,IAAI,EAAK,MAAM,GAAG,IAAI,CAAA;IACtB,mEAAmE;IACnE,EAAE,EAAO,MAAM,CAAA;CAChB;AAED;;;uBAGuB;AACvB,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BxF;AAED;;;sEAGsE;AACtE,wBAAsB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA8C3G;AAED;;+DAE+D;AAC/D,wBAAsB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMvF;AAED;;4EAE4E;AAC5E,wBAAsB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrF;AAED;;2CAE2C;AAC3C,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF"}
|
|
@@ -86,6 +86,13 @@ export async function readIndexSql(executor, table) {
|
|
|
86
86
|
const rows = await executor.execute(`SELECT sql FROM sqlite_master WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL`, [table]);
|
|
87
87
|
return rows.map((r) => String(r['sql']));
|
|
88
88
|
}
|
|
89
|
+
/** The raw `CREATE TABLE` SQL for `table` from `sqlite_master`, or `''`. Used by
|
|
90
|
+
* the rebuild to detect constraints (CHECK) that `PRAGMA` introspection can't
|
|
91
|
+
* surface and the column-by-column reconstruction would therefore drop. */
|
|
92
|
+
export async function readTableSql(executor, table) {
|
|
93
|
+
const rows = await executor.execute(`SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ?`, [table]);
|
|
94
|
+
return rows.length ? String(rows[0]?.['sql'] ?? '') : '';
|
|
95
|
+
}
|
|
89
96
|
/** Whether `table` uses `AUTOINCREMENT` (registered in `sqlite_sequence`). The
|
|
90
97
|
* `sqlite_sequence` table only exists once some table declares AUTOINCREMENT,
|
|
91
98
|
* so a missing-table error means "no". */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../../src/native/schema/introspect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../../src/native/schema/introspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../../src/native/schema/rebuild.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../../src/native/schema/rebuild.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAkB1D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FjH"}
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
// run standalone, the steps execute sequentially.
|
|
18
18
|
import { NativeOrmError } from '../errors.js';
|
|
19
19
|
import { compileColumnSpec } from './ddl-compiler.js';
|
|
20
|
-
import { readColumns, readIndexSql, isAutoincrement } from './introspect.js';
|
|
20
|
+
import { readColumns, readIndexSql, isAutoincrement, readTableSql } from './introspect.js';
|
|
21
|
+
import { readForeignKeys } from './inspect.js';
|
|
21
22
|
/** Render one preserved (introspected) column to its shadow-table spec. The
|
|
22
23
|
* single INTEGER rowid primary key is re-emitted inline (with AUTOINCREMENT
|
|
23
24
|
* when the original used it); everything else keeps its type/null/default. */
|
|
@@ -50,6 +51,17 @@ export async function rebuildTable(executor, dialect, blueprint) {
|
|
|
50
51
|
if (current.length === 0) {
|
|
51
52
|
throw new NativeOrmError('NATIVE_DDL_NO_TABLE', `[RudderJS ORM native] Cannot alter "${table}" — it has no columns or does not exist.`);
|
|
52
53
|
}
|
|
54
|
+
// CHECK constraints live inside the CREATE TABLE body and aren't surfaced by
|
|
55
|
+
// PRAGMA table_info, so the column-by-column shadow reconstruction can't
|
|
56
|
+
// reproduce them — rebuilding would silently drop them (e.g. an enum column's
|
|
57
|
+
// `TEXT CHECK (col IN (...))`). Refuse rather than corrupt. Foreign keys, by
|
|
58
|
+
// contrast, are reconstructed from PRAGMA foreign_key_list below.
|
|
59
|
+
// (Full CHECK preservation is a documented follow-up.)
|
|
60
|
+
if (/\bCHECK\s*\(/i.test(await readTableSql(executor, table))) {
|
|
61
|
+
throw new NativeOrmError('NATIVE_DDL_CHANGE_CHECK', `[RudderJS ORM native] Cannot rebuild "${table}" for change(): it has a CHECK constraint, ` +
|
|
62
|
+
`which the SQLite table rebuild can't yet preserve and would silently drop. Recreate the table ` +
|
|
63
|
+
`(or drop and re-add the CHECK) manually, or run this change on Postgres/MySQL where ALTER is in-place.`);
|
|
64
|
+
}
|
|
53
65
|
const byName = new Map(current.map(c => [c.name, c]));
|
|
54
66
|
const changeByName = new Map();
|
|
55
67
|
for (const def of changes) {
|
|
@@ -77,6 +89,23 @@ export async function rebuildTable(executor, dialect, blueprint) {
|
|
|
77
89
|
if (pkCols.length && !singleIntPk) {
|
|
78
90
|
colLines.push(`PRIMARY KEY (${pkCols.map(c => dialect.quoteId(c.name)).join(', ')})`);
|
|
79
91
|
}
|
|
92
|
+
// Reconstruct foreign keys as table-level clauses — they live in the CREATE
|
|
93
|
+
// TABLE body (invisible to table_info), so without this the rebuild drops
|
|
94
|
+
// them. readForeignKeys (PRAGMA foreign_key_list) gives the full structure.
|
|
95
|
+
// A FK with no referenced columns targets the parent's implicit PK -> emit
|
|
96
|
+
// `REFERENCES table` with no column list (SQLite resolves it).
|
|
97
|
+
for (const fk of await readForeignKeys(executor, dialect, table)) {
|
|
98
|
+
const cols = fk.columns.map(c => dialect.quoteId(c)).join(', ');
|
|
99
|
+
const refCols = fk.foreignColumns.length
|
|
100
|
+
? ` (${fk.foreignColumns.map(c => dialect.quoteId(c)).join(', ')})`
|
|
101
|
+
: '';
|
|
102
|
+
let clause = `FOREIGN KEY (${cols}) REFERENCES ${dialect.quoteId(fk.foreignTable)}${refCols}`;
|
|
103
|
+
if (fk.onDelete && fk.onDelete.toUpperCase() !== 'NO ACTION')
|
|
104
|
+
clause += ` ON DELETE ${fk.onDelete}`;
|
|
105
|
+
if (fk.onUpdate && fk.onUpdate.toUpperCase() !== 'NO ACTION')
|
|
106
|
+
clause += ` ON UPDATE ${fk.onUpdate}`;
|
|
107
|
+
colLines.push(clause);
|
|
108
|
+
}
|
|
80
109
|
const shadow = `__rudder_new_${table}`;
|
|
81
110
|
const colNames = current.map(c => dialect.quoteId(c.name)).join(', ');
|
|
82
111
|
// The rebuild dance. (No renames/drops in v1, so the shadow has the same
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../../src/native/schema/rebuild.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,8EAA8E;AAC9E,wEAAwE;AACxE,iFAAiF;AACjF,6EAA6E;AAC7E,gFAAgF;AAChF,iEAAiE;AACjE,EAAE;AACF,mFAAmF;AACnF,8EAA8E;AAC9E,iFAAiF;AACjF,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,kDAAkD;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"rebuild.js","sourceRoot":"","sources":["../../../src/native/schema/rebuild.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/database",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@rudderjs/contracts": "^1.
|
|
39
|
+
"@rudderjs/contracts": "^1.17.1"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"better-sqlite3": "^12.0.0",
|