@vibeorm/migrate 2.0.1 → 2.1.0
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/adoption.d.ts +16 -0
- package/dist/adoption.d.ts.map +1 -0
- package/dist/compile-desired-state.d.ts +12 -0
- package/dist/compile-desired-state.d.ts.map +1 -0
- package/dist/ddl/postgres.d.ts.map +1 -1
- package/dist/ddl/render.d.ts +7 -0
- package/dist/ddl/render.d.ts.map +1 -1
- package/dist/ddl/sqlite.d.ts +5 -0
- package/dist/ddl/sqlite.d.ts.map +1 -1
- package/dist/desired-state.d.ts +69 -0
- package/dist/desired-state.d.ts.map +1 -0
- package/dist/differ.d.ts.map +1 -1
- package/dist/down.d.ts +2 -0
- package/dist/down.d.ts.map +1 -1
- package/dist/exclusions.d.ts +26 -0
- package/dist/exclusions.d.ts.map +1 -0
- package/dist/execution.d.ts +1 -1
- package/dist/execution.d.ts.map +1 -1
- package/dist/fs.d.ts +7 -0
- package/dist/fs.d.ts.map +1 -0
- package/dist/fs.js +6758 -0
- package/dist/fs.js.map +41 -0
- package/dist/history.d.ts +14 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1672 -203
- package/dist/index.js.map +29 -19
- package/dist/inspect-objects.d.ts +116 -0
- package/dist/inspect-objects.d.ts.map +1 -0
- package/dist/introspect/mysql.d.ts.map +1 -1
- package/dist/introspect/postgres.d.ts +4 -0
- package/dist/introspect/postgres.d.ts.map +1 -1
- package/dist/introspect/shared.d.ts.map +1 -1
- package/dist/inventory.d.ts +15 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/normalize.d.ts +2 -5
- package/dist/normalize.d.ts.map +1 -1
- package/dist/object-ownership.d.ts +58 -0
- package/dist/object-ownership.d.ts.map +1 -0
- package/dist/planner.d.ts +29 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/push.d.ts +9 -36
- package/dist/push.d.ts.map +1 -1
- package/dist/reference-state.d.ts +14 -0
- package/dist/reference-state.d.ts.map +1 -0
- package/dist/runner.d.ts +14 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/sql-statements.d.ts +9 -0
- package/dist/sql-statements.d.ts.map +1 -0
- package/dist/sqlite-types.d.ts.map +1 -1
- package/dist/types.d.ts +23 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { Dialect, SchemaIR, SqlObjectDefinition, SqlObjectIdentity } from "@vibeorm/schema";
|
|
2
|
+
import type { SqlExecutor } from "./types.ts";
|
|
3
|
+
import type { DesiredState } from "./desired-state.ts";
|
|
4
|
+
/** A single difference, not a boolean that hides disabled or changed objects. */
|
|
5
|
+
export type MigrationStateDifference = {
|
|
6
|
+
readonly attribute: string;
|
|
7
|
+
readonly expected: unknown;
|
|
8
|
+
readonly actual: unknown;
|
|
9
|
+
};
|
|
10
|
+
/** Ownership and live condition are independent dimensions. */
|
|
11
|
+
export type MigrationObjectState = {
|
|
12
|
+
readonly identity: SqlObjectIdentity;
|
|
13
|
+
readonly ownership: "schema" | "migration" | "unknown";
|
|
14
|
+
readonly state: "matching" | "missing" | "changed" | "unavailable";
|
|
15
|
+
readonly differences: readonly MigrationStateDifference[];
|
|
16
|
+
readonly reason?: string;
|
|
17
|
+
};
|
|
18
|
+
/** A report only claims convergence when every requested definition was verified. */
|
|
19
|
+
export type MigrationStateReport = {
|
|
20
|
+
readonly inSync: boolean;
|
|
21
|
+
readonly objects: readonly MigrationObjectState[];
|
|
22
|
+
};
|
|
23
|
+
/** Catalog read outcome; missing is never substituted for insufficient privileges. */
|
|
24
|
+
export type InspectedSqlObject = {
|
|
25
|
+
readonly state: "present";
|
|
26
|
+
readonly definition: SqlObjectDefinition;
|
|
27
|
+
} | {
|
|
28
|
+
readonly state: "missing";
|
|
29
|
+
} | {
|
|
30
|
+
readonly state: "unavailable";
|
|
31
|
+
readonly reason: string;
|
|
32
|
+
};
|
|
33
|
+
/** Read an explicitly qualified object using the dialect's catalog renderer. */
|
|
34
|
+
export declare function inspectSqlObject(params: {
|
|
35
|
+
executor: SqlExecutor;
|
|
36
|
+
dialect: Dialect;
|
|
37
|
+
identity: SqlObjectIdentity;
|
|
38
|
+
}): Promise<InspectedSqlObject>;
|
|
39
|
+
/** Require provable catalog visibility; role-only/partial grants report unavailable rather than missing. */
|
|
40
|
+
export declare function assertCatalogVisibility(params: {
|
|
41
|
+
executor: SqlExecutor;
|
|
42
|
+
dialect: Dialect;
|
|
43
|
+
namespace: string;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
/** Probe modes make database writes and required privileges explicit. */
|
|
46
|
+
export declare function assertProbeMode(params: {
|
|
47
|
+
dialect: Dialect;
|
|
48
|
+
probe?: "none" | "rollback" | "temporary";
|
|
49
|
+
}): void;
|
|
50
|
+
/** Read-only by default. The report never treats an absent expectation as a match. */
|
|
51
|
+
export declare function verifyMigrationState(params: {
|
|
52
|
+
executor: SqlExecutor;
|
|
53
|
+
expected: DesiredState;
|
|
54
|
+
dialect: Dialect;
|
|
55
|
+
probe?: "none" | "rollback" | "temporary";
|
|
56
|
+
}): Promise<MigrationStateReport>;
|
|
57
|
+
/** A transition verifies intended removals as well as definitions that should remain. */
|
|
58
|
+
export declare function verifyMigrationTransition(params: {
|
|
59
|
+
executor: SqlExecutor;
|
|
60
|
+
dialect: Dialect;
|
|
61
|
+
from: DesiredState;
|
|
62
|
+
to: DesiredState;
|
|
63
|
+
removals?: readonly SqlObjectIdentity[];
|
|
64
|
+
probe?: "none" | "rollback" | "temporary";
|
|
65
|
+
}): Promise<MigrationStateReport>;
|
|
66
|
+
/** Resolve the physical namespace once; never invent a MySQL database name. */
|
|
67
|
+
export declare function migrationNamespace(params: {
|
|
68
|
+
executor: SqlExecutor;
|
|
69
|
+
dialect: Dialect;
|
|
70
|
+
}): Promise<string>;
|
|
71
|
+
/** Refuse mutation/adoption when verification is incomplete. */
|
|
72
|
+
export declare function assertMigrationState(params: {
|
|
73
|
+
report: MigrationStateReport;
|
|
74
|
+
}): void;
|
|
75
|
+
/** Normalize a trusted authored CHECK in the real type context without retaining DDL. Caller owns transaction. */
|
|
76
|
+
export declare function deparsePostgresCheck(params: {
|
|
77
|
+
executor: SqlExecutor;
|
|
78
|
+
table: {
|
|
79
|
+
namespace: string;
|
|
80
|
+
name: string;
|
|
81
|
+
};
|
|
82
|
+
expression: string;
|
|
83
|
+
probe: "rollback";
|
|
84
|
+
}): Promise<string>;
|
|
85
|
+
/** Compile a trusted CHECK declaration into normalized metadata using only the authored expression. */
|
|
86
|
+
export declare function deparsePostgresCheckDefinition(params: {
|
|
87
|
+
executor: SqlExecutor;
|
|
88
|
+
table: {
|
|
89
|
+
namespace: string;
|
|
90
|
+
name: string;
|
|
91
|
+
};
|
|
92
|
+
expression: string;
|
|
93
|
+
constraint: string;
|
|
94
|
+
probe: "rollback";
|
|
95
|
+
}): Promise<SqlObjectDefinition>;
|
|
96
|
+
/** Normalize on a private MySQL temporary clone; cleanup is mandatory even after a failed expression. */
|
|
97
|
+
export declare function deparseMysqlCheck(params: {
|
|
98
|
+
executor: SqlExecutor;
|
|
99
|
+
table: {
|
|
100
|
+
namespace: string;
|
|
101
|
+
name: string;
|
|
102
|
+
};
|
|
103
|
+
expression: string;
|
|
104
|
+
probe: "temporary";
|
|
105
|
+
}): Promise<string>;
|
|
106
|
+
/** Resolve raw CHECK comparisons; unequal unnormalized text never silently produces an empty diff. */
|
|
107
|
+
export declare function prepareCheckDiff(params: {
|
|
108
|
+
executor: SqlExecutor;
|
|
109
|
+
from: SchemaIR;
|
|
110
|
+
to: SchemaIR;
|
|
111
|
+
dialect: Dialect;
|
|
112
|
+
probe?: "none" | "rollback" | "temporary";
|
|
113
|
+
previous?: DesiredState;
|
|
114
|
+
replaceChecks?: readonly SqlObjectIdentity[];
|
|
115
|
+
}): Promise<SchemaIR>;
|
|
116
|
+
//# sourceMappingURL=inspect-objects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect-objects.d.ts","sourceRoot":"","sources":["../src/inspect-objects.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/introspect/mysql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EAUV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AASzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/introspect/mysql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EAUV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AASzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA2H/C,uEAAuE;AACvE,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8M1F"}
|
|
@@ -27,4 +27,8 @@ export declare function introspectPostgres(params: {
|
|
|
27
27
|
inTransaction?: boolean;
|
|
28
28
|
requireInstalledRls?: boolean;
|
|
29
29
|
}): Promise<SchemaIR>;
|
|
30
|
+
/** Read the physical catalog only; no policy probes, locks or transaction statements. */
|
|
31
|
+
export declare function introspectPhysicalPostgres(params: {
|
|
32
|
+
executor: SqlExecutor;
|
|
33
|
+
}): Promise<SchemaIR>;
|
|
30
34
|
//# sourceMappingURL=postgres.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/introspect/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/introspect/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,OAAO,KAAK,EASV,QAAQ,EACT,MAAM,iBAAiB,CAAC;AASzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA+L/C,gFAAgF;AAChF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,QAAQ,EAAE,WAAW,CAAC;IACtB,uFAAuF;IACvF,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuBpB;AAED,yFAAyF;AACzF,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CA+LrG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/introspect/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAc,MAAM,iBAAiB,CAAC;AAI1E,sEAAsE;AACtE,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACvC,GAAG,aAAa,GAAG,IAAI,CA8BvB;AAID,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/introspect/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAc,MAAM,iBAAiB,CAAC;AAI1E,sEAAsE;AACtE,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACvC,GAAG,aAAa,GAAG,IAAI,CA8BvB;AAID,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD,GAAG,IAAI,CAgDP;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAChD,GAAG,IAAI,CAuCP;AAmGD,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Dialect, SqlObjectIdentity } from "@vibeorm/schema";
|
|
2
|
+
import type { SqlExecutor } from "./types.ts";
|
|
3
|
+
/** Live identities remain observations and cannot establish desired ownership. */
|
|
4
|
+
export type CatalogObject = {
|
|
5
|
+
readonly identity: SqlObjectIdentity;
|
|
6
|
+
readonly backingConstraint?: string;
|
|
7
|
+
readonly inspectionUnavailable?: string;
|
|
8
|
+
};
|
|
9
|
+
/** Enumerate live objects in the migration namespace. Permission errors propagate as unavailable. */
|
|
10
|
+
export declare function inspectMigrationInventory(params: {
|
|
11
|
+
executor: SqlExecutor;
|
|
12
|
+
dialect: Dialect;
|
|
13
|
+
namespace: string;
|
|
14
|
+
}): Promise<readonly CatalogObject[]>;
|
|
15
|
+
//# sourceMappingURL=inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnJ,qGAAqG;AACrG,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAwEzJ"}
|
package/dist/normalize.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export type NormalizedColumn = {
|
|
|
33
33
|
};
|
|
34
34
|
/** An index (unique or not) ready for comparison. `key` ignores the name. */
|
|
35
35
|
export type NormalizedIndex = {
|
|
36
|
+
readonly constraintName?: string;
|
|
36
37
|
readonly key: string;
|
|
37
38
|
readonly name: string;
|
|
38
39
|
readonly kind: string;
|
|
@@ -62,11 +63,7 @@ export type NormalizedTable = {
|
|
|
62
63
|
readonly pk: readonly string[];
|
|
63
64
|
readonly indexes: ReadonlyMap<string, NormalizedIndex>;
|
|
64
65
|
readonly fks: ReadonlyMap<string, NormalizedFk>;
|
|
65
|
-
/**
|
|
66
|
-
* CHECK constraints, name → raw expression. NAME-keyed in the diff —
|
|
67
|
-
* engines re-serialize expressions on introspection, so text is never
|
|
68
|
-
* compared (an expression change = rename the check).
|
|
69
|
-
*/
|
|
66
|
+
/** CHECK names and authored expressions; live callers establish normalized equivalence first. */
|
|
70
67
|
readonly checks: ReadonlyMap<string, string>;
|
|
71
68
|
};
|
|
72
69
|
/** An implicit M2M join table collapsed to its database shape. */
|
package/dist/normalize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,MAAM,EACN,OAAO,EAEP,OAAO,EACP,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAYzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI5D,qCAAqC;AACrC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxD,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Dialect, ExtensionArtifact, MigrationObjectIR, SchemaIR, SqlObjectIdentity } from "@vibeorm/schema";
|
|
2
|
+
import type { MigrationStep } from "./types.ts";
|
|
3
|
+
import type { DesiredState } from "./desired-state.ts";
|
|
4
|
+
/** Legacy artifact registrations enter the same identity pipeline as migration-only objects. */
|
|
5
|
+
export declare function legacyMigrationObjects(params: {
|
|
6
|
+
artifacts: readonly ExtensionArtifact[];
|
|
7
|
+
dialect: Dialect;
|
|
8
|
+
namespace: string;
|
|
9
|
+
}): MigrationObjectIR[];
|
|
10
|
+
/** Remove only migration-owned portions of physical IR, preserving unrelated fields and constraints. */
|
|
11
|
+
export declare function preserveMigrationObjects(params: {
|
|
12
|
+
from: SchemaIR;
|
|
13
|
+
to: SchemaIR;
|
|
14
|
+
objects: readonly MigrationObjectIR[];
|
|
15
|
+
namespace?: string;
|
|
16
|
+
}): SchemaIR;
|
|
17
|
+
/** Rebuild targets must retain migration-owned constraints and indexes that the core diff excludes. */
|
|
18
|
+
export declare function sqlitePreservedSchema(params: {
|
|
19
|
+
from: SchemaIR;
|
|
20
|
+
to: SchemaIR;
|
|
21
|
+
objects: readonly MigrationObjectIR[];
|
|
22
|
+
}): SchemaIR;
|
|
23
|
+
/** Physical identity of a removal proposed by the core differ. */
|
|
24
|
+
export declare function removalIdentity(params: {
|
|
25
|
+
step: MigrationStep;
|
|
26
|
+
namespace: string;
|
|
27
|
+
}): SqlObjectIdentity | undefined;
|
|
28
|
+
/** Known ownership from the previous authored declaration, not a target snapshot. */
|
|
29
|
+
export declare function schemaObjectIdentities(params: {
|
|
30
|
+
schema: SchemaIR;
|
|
31
|
+
dialect: Dialect;
|
|
32
|
+
namespace: string;
|
|
33
|
+
}): SqlObjectIdentity[];
|
|
34
|
+
/** A removed registration cannot silently surrender previously trusted ownership. */
|
|
35
|
+
export declare function assertRetainedMigrationObjects(params: {
|
|
36
|
+
from: readonly MigrationObjectIR[];
|
|
37
|
+
to: readonly MigrationObjectIR[];
|
|
38
|
+
}): void;
|
|
39
|
+
/** One dependency order for live planning, authored generation and reverse artifact removal. */
|
|
40
|
+
export declare function orderedMigrationObjects(params: {
|
|
41
|
+
objects: readonly MigrationObjectIR[];
|
|
42
|
+
}): MigrationObjectIR[];
|
|
43
|
+
/** Exact unmanaged identities require acknowledgement even when removal is collateral DDL. */
|
|
44
|
+
export declare function assertNamedRemovals(params: {
|
|
45
|
+
removals: readonly SqlObjectIdentity[];
|
|
46
|
+
approved?: readonly SqlObjectIdentity[];
|
|
47
|
+
acceptIntegrityLoss?: boolean;
|
|
48
|
+
}): void;
|
|
49
|
+
/** Independent authorizations: row loss does not authorize integrity loss or unnamed removals. */
|
|
50
|
+
export declare function assertRemovalAuthorization(params: {
|
|
51
|
+
steps: readonly MigrationStep[];
|
|
52
|
+
previous?: DesiredState;
|
|
53
|
+
dialect: Dialect;
|
|
54
|
+
namespace: string;
|
|
55
|
+
acceptIntegrityLoss?: boolean;
|
|
56
|
+
removeUnmanaged?: readonly SqlObjectIdentity[];
|
|
57
|
+
}): void;
|
|
58
|
+
//# sourceMappingURL=object-ownership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-ownership.d.ts","sourceRoot":"","sources":["../src/object-ownership.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,EAAE,CAYpJ;AAED,wGAAwG;AACxG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CA2BtJ;AAED,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,QAAQ,CAY/H;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,GAAG,SAAS,CAejH;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,EAAE,CA4B7H;AAED,qFAAqF;AACrF,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,EAAE,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,IAAI,CAIrI;AAED,gGAAgG;AAChG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,iBAAiB,EAAE,CAiB9G;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAMpK;AAED,kGAAkG;AAClG,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,IAAI,CAoBzO"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Dialect, SchemaIR, SqlObjectIdentity, VibeExtension } from "@vibeorm/schema";
|
|
2
|
+
import type { SqlExecutor, MigrationStep } from "./types.ts";
|
|
3
|
+
import type { DesiredState } from "./desired-state.ts";
|
|
4
|
+
import type { MigrationObjectState } from "./inspect-objects.ts";
|
|
5
|
+
/** Shared live plan; reports observations separately from trusted desired declarations. */
|
|
6
|
+
export type SchemaMigrationPlan = {
|
|
7
|
+
readonly physical: SchemaIR;
|
|
8
|
+
readonly from: SchemaIR;
|
|
9
|
+
readonly namespace: string;
|
|
10
|
+
readonly steps: readonly MigrationStep[];
|
|
11
|
+
readonly sql: readonly string[];
|
|
12
|
+
readonly objects: readonly MigrationObjectState[];
|
|
13
|
+
readonly unmanagedRemovals: readonly SqlObjectIdentity[];
|
|
14
|
+
readonly blocked: boolean;
|
|
15
|
+
};
|
|
16
|
+
/** Inspect and plan without executing repair DDL. The caller owns any opted-in probe transaction. */
|
|
17
|
+
export declare function planSchemaMigration(params: {
|
|
18
|
+
executor: SqlExecutor;
|
|
19
|
+
schema: SchemaIR;
|
|
20
|
+
dialect: Dialect;
|
|
21
|
+
namespace?: string;
|
|
22
|
+
/** Already-introspected physical IR, including verified native RLS when applicable. */
|
|
23
|
+
physical?: SchemaIR;
|
|
24
|
+
previous?: DesiredState;
|
|
25
|
+
extensions?: readonly VibeExtension[];
|
|
26
|
+
probe?: "none" | "rollback" | "temporary";
|
|
27
|
+
replaceChecks?: readonly SqlObjectIdentity[];
|
|
28
|
+
}): Promise<SchemaMigrationPlan>;
|
|
29
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAOjE,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qGAAqG;AACrG,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,QAAQ,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC9E,uFAAuF;IACvF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzF,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4J/B"}
|
package/dist/push.d.ts
CHANGED
|
@@ -1,49 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
* `db push` / `db pull` at library level (the CLI wires these).
|
|
3
|
-
*
|
|
4
|
-
* push = introspect → diff → render → apply, routed per dialect
|
|
5
|
-
* (`providerToDialect(schema.datasource.provider)`):
|
|
6
|
-
*
|
|
7
|
-
* - postgres/pglite: all statements in ONE transaction (transactional DDL).
|
|
8
|
-
* - sqlite: transactional too, UNLESS the script contains a table-rebuild
|
|
9
|
-
* block — those manage their own `PRAGMA foreign_keys` + BEGIN/COMMIT
|
|
10
|
-
* sequence (ddl/sqlite.ts) and run unwrapped; `PRAGMA foreign_key_check`
|
|
11
|
-
* violations become VIBE_MIGRATION errors (execute.ts).
|
|
12
|
-
* - mysql: DDL auto-commits — statements run sequentially, no wrap.
|
|
13
|
-
*
|
|
14
|
-
* Destructive steps are REFUSED unless `acceptDataLoss` is set — the error
|
|
15
|
-
* lists every destructive step, loudly (dialect honesty: never silently drop
|
|
16
|
-
* data).
|
|
17
|
-
*/
|
|
18
|
-
import type { Dialect, SchemaIR, VibeExtension } from "@vibeorm/schema";
|
|
1
|
+
import type { Dialect, SchemaIR, SqlObjectIdentity, VibeExtension } from "@vibeorm/schema";
|
|
19
2
|
import type { PushResult, SqlExecutor } from "./types.ts";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* and the SQL executed (both empty when the database already matched — pushing
|
|
23
|
-
* twice is a no-op by the differ's round-trip property).
|
|
24
|
-
*
|
|
25
|
-
* @throws VibeError VIBE_SCHEMA_INVALID when the target schema fails validation.
|
|
26
|
-
* @throws VibeError VIBE_UNSUPPORTED_CAPABILITY for dialect-impossible constructs
|
|
27
|
-
* (scalar lists on sqlite/mysql, partial indexes on mysql, enum-value removal).
|
|
28
|
-
* @throws VibeError VIBE_MIGRATION when destructive steps exist and `acceptDataLoss` is not set.
|
|
29
|
-
*/
|
|
3
|
+
import type { DesiredState } from "./desired-state.ts";
|
|
4
|
+
/** Plan and apply a schema. Row loss, integrity loss and unmanaged removal require separate decisions. */
|
|
30
5
|
export declare function push(params: {
|
|
31
6
|
executor: SqlExecutor;
|
|
32
7
|
schema: SchemaIR;
|
|
33
8
|
acceptDataLoss?: boolean;
|
|
34
|
-
|
|
9
|
+
acceptIntegrityLoss?: boolean;
|
|
10
|
+
removeUnmanaged?: readonly SqlObjectIdentity[];
|
|
11
|
+
previousState?: DesiredState;
|
|
12
|
+
probe?: "none" | "rollback" | "temporary";
|
|
13
|
+
replaceChecks?: readonly SqlObjectIdentity[];
|
|
35
14
|
acceptSecurityChanges?: boolean;
|
|
36
|
-
/** Deployed declaration when changing a policy or its referenced columns. */
|
|
37
15
|
previousSchema?: SchemaIR;
|
|
38
|
-
/** Return planned SQL and security changes without applying or requiring acknowledgements. */
|
|
39
16
|
dryRun?: boolean;
|
|
40
|
-
/** Configured extension instances — their artifacts apply with the diff. */
|
|
41
17
|
extensions?: readonly VibeExtension[];
|
|
42
18
|
}): Promise<PushResult>;
|
|
43
|
-
/**
|
|
44
|
-
* Introspect the live database into SchemaIR (the CLI's `db pull`).
|
|
45
|
-
* `dialect` selects the introspector — postgres if omitted (back-compat).
|
|
46
|
-
*/
|
|
19
|
+
/** Introspect the live database; PostgreSQL refuses lossy native policy export. */
|
|
47
20
|
export declare function pull(params: {
|
|
48
21
|
executor: SqlExecutor;
|
|
49
22
|
dialect?: Dialect;
|
package/dist/push.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQ3F,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,0GAA0G;AAC1G,wBAAsB,IAAI,CAAC,MAAM,EAAE;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1C,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACvC,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBtB;AA2CD,mFAAmF;AACnF,wBAAsB,IAAI,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAMlG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Dialect, SchemaIR } from "@vibeorm/schema";
|
|
2
|
+
import type { DesiredState } from "./desired-state.ts";
|
|
3
|
+
import type { SqlExecutor } from "./types.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Capture normalized definitions from an independently built reference database.
|
|
6
|
+
* The caller must supply a disposable reference built from reviewed migrations,
|
|
7
|
+
* never the target whose drift or adoption will be checked against this record.
|
|
8
|
+
*/
|
|
9
|
+
export declare function captureMigrationReference(params: {
|
|
10
|
+
referenceExecutor: SqlExecutor;
|
|
11
|
+
schema: SchemaIR;
|
|
12
|
+
dialect: Dialect;
|
|
13
|
+
}): Promise<DesiredState>;
|
|
14
|
+
//# sourceMappingURL=reference-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-state.d.ts","sourceRoot":"","sources":["../src/reference-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,iBAAiB,EAAE,WAAW,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,YAAY,CAAC,CAaxB"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
* re-applying a renamed-or-edited migration is a VIBE_MIGRATION error, never
|
|
54
54
|
* a silent divergence.
|
|
55
55
|
*/
|
|
56
|
-
import type { Dialect, SchemaIR, VibeExtension } from "@vibeorm/schema";
|
|
56
|
+
import type { Dialect, SchemaIR, SqlObjectIdentity, VibeExtension } from "@vibeorm/schema";
|
|
57
57
|
import type { MigrationExecution } from "./execution.ts";
|
|
58
58
|
import type { RenameIntent } from "./renames.ts";
|
|
59
59
|
import type { AppliedResult, MigrationFile, MigrationStatus, RecordedMigration, SqlExecutor } from "./types.ts";
|
|
@@ -75,7 +75,12 @@ export declare function ensureMigrationsTable(params: {
|
|
|
75
75
|
export declare function migrationChecksum(params: {
|
|
76
76
|
sql: readonly string[];
|
|
77
77
|
execution?: MigrationExecution;
|
|
78
|
+
desiredState?: MigrationDesiredState;
|
|
79
|
+
downSql?: readonly string[];
|
|
80
|
+
downExecution?: MigrationExecution;
|
|
81
|
+
desiredStatePending?: boolean;
|
|
78
82
|
}): string;
|
|
83
|
+
import type { MigrationDesiredState } from "./desired-state.ts";
|
|
79
84
|
/**
|
|
80
85
|
* Diff two IRs and render a named migration for a dialect (postgres if
|
|
81
86
|
* omitted). `destructive` aggregates the steps' flags so callers can gate
|
|
@@ -93,6 +98,8 @@ export declare function generateMigration(params: {
|
|
|
93
98
|
renames?: readonly RenameIntent[];
|
|
94
99
|
/** Explicit execution semantics for the generated file. */
|
|
95
100
|
execution?: MigrationExecution;
|
|
101
|
+
/** Independent authored baseline; required by live generation on an existing database. */
|
|
102
|
+
desiredState?: MigrationDesiredState;
|
|
96
103
|
}): MigrationFile;
|
|
97
104
|
/**
|
|
98
105
|
* Apply migrations in order under an advisory lock (see module doc).
|
|
@@ -107,6 +114,10 @@ export declare function applyMigrations(params: {
|
|
|
107
114
|
executor: SqlExecutor;
|
|
108
115
|
migrations: readonly MigrationFile[];
|
|
109
116
|
acceptSecurityChanges?: boolean;
|
|
117
|
+
acceptIntegrityLoss?: boolean;
|
|
118
|
+
removeUnmanaged?: readonly SqlObjectIdentity[];
|
|
119
|
+
/** Explicit permission for rollback-only PostgreSQL CHECK normalization probes. */
|
|
120
|
+
probe?: "none" | "rollback" | "temporary";
|
|
110
121
|
/** Execution dialect; postgres if omitted. */
|
|
111
122
|
dialect?: Dialect;
|
|
112
123
|
}): Promise<AppliedResult>;
|
|
@@ -175,6 +186,8 @@ export declare function rollbackMigration(params: {
|
|
|
175
186
|
executor: SqlExecutor;
|
|
176
187
|
migration: MigrationFile;
|
|
177
188
|
acceptSecurityChanges?: boolean;
|
|
189
|
+
acceptIntegrityLoss?: boolean;
|
|
190
|
+
probe?: "none" | "rollback" | "temporary";
|
|
178
191
|
/** Execution dialect; postgres if omitted. */
|
|
179
192
|
dialect?: Dialect;
|
|
180
193
|
}): Promise<void>;
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAU3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAqBjD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,YAAY,CAAC;AAoFpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAsC3D,iDAAiD;AACjD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,MAAM,CAGT;AAWD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAiBhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACtC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACtC,GAAG,aAAa,CAyChB;AAID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1C,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoGzB;AAID,8DAA8D;AAC9D,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IACrC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0C3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,QAAQ,EAAE,WAAW,CAAC;IACtB,8DAA8D;IAC9D,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IACrC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2B/B;AAID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,SAAS,GAAG,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhB;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1C,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEhB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Split statements without splitting quoted strings or stored-program bodies. */
|
|
2
|
+
export declare function splitSqlStatements(params: {
|
|
3
|
+
sql: string;
|
|
4
|
+
}): string[];
|
|
5
|
+
/** Render the historical semicolon-terminated migration-file representation. */
|
|
6
|
+
export declare function joinSqlStatements(params: {
|
|
7
|
+
sql: readonly string[];
|
|
8
|
+
}): string;
|
|
9
|
+
//# sourceMappingURL=sql-statements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-statements.d.ts","sourceRoot":"","sources":["../src/sql-statements.ts"],"names":[],"mappings":"AAKA,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAoGpE;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAE5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-types.d.ts","sourceRoot":"","sources":["../src/sqlite-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAUjE,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAMxE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAepE;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,GAAG,MAAM,CAWT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAQlF;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAyB/E;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAET;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAKF,sEAAsE;AACtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"sqlite-types.d.ts","sourceRoot":"","sources":["../src/sqlite-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAUjE,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAMxE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAepE;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,GAAG,MAAM,CAWT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAQlF;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAyB/E;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAET;AAED,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAKF,sEAAsE;AACtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,EAAE,CAgCvF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,EAAE,CAYrF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
* SQL-text decision stays reviewable in one place (constitution rule 3/4).
|
|
8
8
|
*/
|
|
9
9
|
import type { CascadeAction, CheckIR, EnumIR, FieldIR, SchemaIR } from "@vibeorm/schema";
|
|
10
|
+
import type { ExclusionIR } from "@vibeorm/schema";
|
|
10
11
|
import type { MigrationExecution } from "./execution.ts";
|
|
12
|
+
import type { DesiredState, MigrationDesiredState } from "./desired-state.ts";
|
|
13
|
+
import type { MigrationObjectState } from "./inspect-objects.ts";
|
|
14
|
+
import type { SqlObjectIdentity } from "@vibeorm/schema";
|
|
11
15
|
/**
|
|
12
16
|
* Minimal SQL execution contract the migrate engine runs on. Structurally
|
|
13
17
|
* identical to @vibeorm/runtime's `SqlExecutor` (its `toSqlExecutor` bridges a
|
|
@@ -26,7 +30,7 @@ export type SqlExecutor = (params: {
|
|
|
26
30
|
values?: unknown[];
|
|
27
31
|
}) => Promise<Record<string, unknown>[]>;
|
|
28
32
|
/** Which aspects of a column an `alterColumn` step changes. */
|
|
29
|
-
export type AlterColumnAspect = "type" | "nullability" | "default";
|
|
33
|
+
export type AlterColumnAspect = "type" | "nullability" | "default" | "collation";
|
|
30
34
|
/** One column of an index, with its sort direction. */
|
|
31
35
|
export type IndexColumn = {
|
|
32
36
|
readonly name: string;
|
|
@@ -57,6 +61,11 @@ export type JoinTableEnd = {
|
|
|
57
61
|
* `acceptDataLoss`, and `generateMigration` surfaces the flag.
|
|
58
62
|
*/
|
|
59
63
|
export type MigrationStep = ({
|
|
64
|
+
readonly kind: "addExclusion" | "dropExclusion";
|
|
65
|
+
readonly table: string;
|
|
66
|
+
readonly exclusion: ExclusionIR;
|
|
67
|
+
readonly destructive: false;
|
|
68
|
+
} | {
|
|
60
69
|
readonly kind: "enableRls" | "forceRls" | "disableRls" | "noForceRls" | "dropPolicy";
|
|
61
70
|
readonly table: string;
|
|
62
71
|
readonly destructive: false;
|
|
@@ -85,6 +94,7 @@ export type MigrationStep = ({
|
|
|
85
94
|
readonly columns: readonly FieldIR[];
|
|
86
95
|
/** Primary-key column db names (empty = no PK). */
|
|
87
96
|
readonly primaryKey: readonly string[];
|
|
97
|
+
readonly primaryKeyConstraintName?: string;
|
|
88
98
|
/** Named CHECK constraints, rendered into the CREATE TABLE. */
|
|
89
99
|
readonly checks?: readonly CheckIR[];
|
|
90
100
|
readonly destructive: false;
|
|
@@ -139,6 +149,8 @@ export type MigrationStep = ({
|
|
|
139
149
|
} | {
|
|
140
150
|
readonly kind: "dropIndex";
|
|
141
151
|
readonly name: string;
|
|
152
|
+
/** PostgreSQL unique-constraint backing indexes are dropped via their owner. */
|
|
153
|
+
readonly constraintName?: string;
|
|
142
154
|
/**
|
|
143
155
|
* Table the index belongs to. Optional for postgres/sqlite (their DROP
|
|
144
156
|
* INDEX is schema-global) but REQUIRED by the mysql renderer
|
|
@@ -221,11 +233,13 @@ export type MigrationStep = ({
|
|
|
221
233
|
} | {
|
|
222
234
|
readonly kind: "addPrimaryKey";
|
|
223
235
|
readonly table: string;
|
|
236
|
+
readonly constraintName?: string;
|
|
224
237
|
readonly columns: readonly string[];
|
|
225
238
|
readonly destructive: false;
|
|
226
239
|
} | {
|
|
227
240
|
readonly kind: "dropPrimaryKey";
|
|
228
241
|
readonly table: string;
|
|
242
|
+
readonly constraintName?: string;
|
|
229
243
|
readonly destructive: false;
|
|
230
244
|
} | {
|
|
231
245
|
/**
|
|
@@ -249,6 +263,10 @@ export declare function describeStep(params: {
|
|
|
249
263
|
}): string;
|
|
250
264
|
/** A named migration: ordered SQL statements plus its aggregate destructiveness. */
|
|
251
265
|
export type MigrationFile = {
|
|
266
|
+
/** Reviewed desired state, checksum-bound for new migrations only. */
|
|
267
|
+
readonly desiredState?: MigrationDesiredState;
|
|
268
|
+
/** Offline --empty shell: cannot execute or establish trusted desired state until finalized. */
|
|
269
|
+
readonly desiredStatePending?: true;
|
|
252
270
|
readonly name: string;
|
|
253
271
|
/** One SQL string per statement, in execution order. */
|
|
254
272
|
readonly sql: readonly string[];
|
|
@@ -318,6 +336,10 @@ export type RecordedMigration = {
|
|
|
318
336
|
};
|
|
319
337
|
/** Result of `push`. */
|
|
320
338
|
export type PushResult = {
|
|
339
|
+
readonly objects?: readonly MigrationObjectState[];
|
|
340
|
+
readonly blocked?: boolean;
|
|
341
|
+
readonly unmanagedRemovals?: readonly SqlObjectIdentity[];
|
|
342
|
+
readonly desiredState?: DesiredState;
|
|
321
343
|
/** The diff that was applied (empty = database already matched). */
|
|
322
344
|
readonly steps: readonly MigrationStep[];
|
|
323
345
|
/** The SQL statements that were executed, in order. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAIzC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|