pipework 0.212.0 → 0.243.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/CHANGELOG.md +140 -0
- package/REFERENCE.md +94 -2
- package/dist/REFERENCE.md +472 -16
- package/dist/cli/commands/openapi.d.ts +8 -0
- package/dist/cli/commands/openapi.d.ts.map +1 -0
- package/dist/cli/commands/openapi.js +49 -0
- package/dist/cli/commands/openapi.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +8 -0
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +22 -3
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/dev-bootstrap.js +6 -1
- package/dist/cli/dev-bootstrap.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +15 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/surface-kinds.d.ts +5 -0
- package/dist/cli/surface-kinds.d.ts.map +1 -0
- package/dist/cli/surface-kinds.js +15 -0
- package/dist/cli/surface-kinds.js.map +1 -0
- package/dist/core/config/load.d.ts +1 -0
- package/dist/core/config/load.d.ts.map +1 -1
- package/dist/core/config/load.js +1 -0
- package/dist/core/config/load.js.map +1 -1
- package/dist/core/config/namespace.d.ts +6 -0
- package/dist/core/config/namespace.d.ts.map +1 -1
- package/dist/core/config/schema.d.ts +15 -0
- package/dist/core/config/schema.d.ts.map +1 -1
- package/dist/core/config/schema.js +11 -2
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/lifecycle/health.js +2 -2
- package/dist/core/lifecycle/health.js.map +1 -1
- package/dist/core/lifecycle/types.d.ts +2 -0
- package/dist/core/lifecycle/types.d.ts.map +1 -1
- package/dist/core/pipework.d.ts +14 -1
- package/dist/core/pipework.d.ts.map +1 -1
- package/dist/core/pipework.js +18 -2
- package/dist/core/pipework.js.map +1 -1
- package/dist/core/surface/http.d.ts +3 -0
- package/dist/core/surface/http.d.ts.map +1 -1
- package/dist/core/surface/http.js +27 -8
- package/dist/core/surface/http.js.map +1 -1
- package/dist/core/surface/start.d.ts.map +1 -1
- package/dist/core/surface/start.js +19 -3
- package/dist/core/surface/start.js.map +1 -1
- package/dist/core/surface/types.d.ts +8 -0
- package/dist/core/surface/types.d.ts.map +1 -1
- package/dist/data/db/filter.d.ts +3 -0
- package/dist/data/db/filter.d.ts.map +1 -1
- package/dist/data/db/filter.js +3 -0
- package/dist/data/db/filter.js.map +1 -1
- package/dist/data/db/in-list.d.ts +15 -0
- package/dist/data/db/in-list.d.ts.map +1 -0
- package/dist/data/db/in-list.js +51 -0
- package/dist/data/db/in-list.js.map +1 -0
- package/dist/data/db/namespace.d.ts +2 -0
- package/dist/data/db/namespace.d.ts.map +1 -1
- package/dist/data/db/pool.d.ts +1 -1
- package/dist/data/db/pool.d.ts.map +1 -1
- package/dist/data/db/pool.js +4 -2
- package/dist/data/db/pool.js.map +1 -1
- package/dist/data/db/reservation.d.ts +40 -0
- package/dist/data/db/reservation.d.ts.map +1 -0
- package/dist/data/db/reservation.js +108 -0
- package/dist/data/db/reservation.js.map +1 -0
- package/dist/data/domain/build-table.js +32 -1
- package/dist/data/domain/build-table.js.map +1 -1
- package/dist/data/domain/index.d.ts +2 -1
- package/dist/data/domain/index.d.ts.map +1 -1
- package/dist/data/domain/types.d.ts +9 -1
- package/dist/data/domain/types.d.ts.map +1 -1
- package/dist/data/domain/types.js.map +1 -1
- package/dist/data/migrate/apply.d.ts +14 -0
- package/dist/data/migrate/apply.d.ts.map +1 -1
- package/dist/data/migrate/apply.js +13 -13
- package/dist/data/migrate/apply.js.map +1 -1
- package/dist/data/migrate/check.d.ts.map +1 -1
- package/dist/data/migrate/check.js +3 -6
- package/dist/data/migrate/check.js.map +1 -1
- package/dist/data/migrate/diff.d.ts +16 -0
- package/dist/data/migrate/diff.d.ts.map +1 -1
- package/dist/data/migrate/diff.js +44 -4
- package/dist/data/migrate/diff.js.map +1 -1
- package/dist/data/migrate/generate.d.ts +1 -1
- package/dist/data/migrate/generate.d.ts.map +1 -1
- package/dist/data/migrate/generate.js +19 -51
- package/dist/data/migrate/generate.js.map +1 -1
- package/dist/data/migrate/history.d.ts +36 -0
- package/dist/data/migrate/history.d.ts.map +1 -0
- package/dist/data/migrate/history.js +185 -0
- package/dist/data/migrate/history.js.map +1 -0
- package/dist/data/migrate/internal-definitions.d.ts.map +1 -1
- package/dist/data/migrate/internal-definitions.js +22 -1
- package/dist/data/migrate/internal-definitions.js.map +1 -1
- package/dist/data/migrate/provision-framework.d.ts +2 -0
- package/dist/data/migrate/provision-framework.d.ts.map +1 -1
- package/dist/data/migrate/provision-framework.js +17 -5
- package/dist/data/migrate/provision-framework.js.map +1 -1
- package/dist/data/migrate/snapshot.d.ts +4 -0
- package/dist/data/migrate/snapshot.d.ts.map +1 -1
- package/dist/data/migrate/snapshot.js +2 -0
- package/dist/data/migrate/snapshot.js.map +1 -1
- package/dist/data/migrate/sql-emit.js +66 -12
- package/dist/data/migrate/sql-emit.js.map +1 -1
- package/dist/data/query/pg-core/foreign-keys.d.ts +5 -0
- package/dist/data/query/pg-core/foreign-keys.d.ts.map +1 -1
- package/dist/data/query/pg-core/foreign-keys.js +9 -0
- package/dist/data/query/pg-core/foreign-keys.js.map +1 -1
- package/dist/data/query/pg-core/indexes.d.ts +5 -0
- package/dist/data/query/pg-core/indexes.d.ts.map +1 -1
- package/dist/data/query/pg-core/indexes.js +7 -0
- package/dist/data/query/pg-core/indexes.js.map +1 -1
- package/dist/data/schema/json-schema.js +29 -1
- package/dist/data/schema/json-schema.js.map +1 -1
- package/dist/data/schema/types.d.ts +2 -2
- package/dist/data/schema/types.d.ts.map +1 -1
- package/dist/index.d.ts +18 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/alerts/handle.d.ts +33 -5
- package/dist/infra/alerts/handle.d.ts.map +1 -1
- package/dist/infra/alerts/handle.js +56 -12
- package/dist/infra/alerts/handle.js.map +1 -1
- package/dist/infra/alerts/http.d.ts +2 -2
- package/dist/infra/alerts/http.d.ts.map +1 -1
- package/dist/infra/alerts/http.js +21 -3
- package/dist/infra/alerts/http.js.map +1 -1
- package/dist/infra/alerts/index.d.ts +1 -1
- package/dist/infra/alerts/index.d.ts.map +1 -1
- package/dist/infra/alerts/schema.d.ts +5 -0
- package/dist/infra/alerts/schema.d.ts.map +1 -1
- package/dist/infra/alerts/schema.js +1 -0
- package/dist/infra/alerts/schema.js.map +1 -1
- package/dist/infra/crawl/audit.d.ts +6 -0
- package/dist/infra/crawl/audit.d.ts.map +1 -0
- package/dist/infra/crawl/audit.js +38 -0
- package/dist/infra/crawl/audit.js.map +1 -0
- package/dist/infra/crawl/errors.d.ts +14 -0
- package/dist/infra/crawl/errors.d.ts.map +1 -0
- package/dist/infra/crawl/errors.js +22 -0
- package/dist/infra/crawl/errors.js.map +1 -0
- package/dist/infra/crawl/handle.d.ts +149 -0
- package/dist/infra/crawl/handle.d.ts.map +1 -0
- package/dist/infra/crawl/handle.js +550 -0
- package/dist/infra/crawl/handle.js.map +1 -0
- package/dist/infra/crawl/index.d.ts +7 -0
- package/dist/infra/crawl/index.d.ts.map +1 -0
- package/dist/infra/crawl/index.js +5 -0
- package/dist/infra/crawl/index.js.map +1 -0
- package/dist/infra/crawl/links.d.ts +9 -0
- package/dist/infra/crawl/links.d.ts.map +1 -0
- package/dist/infra/crawl/links.js +194 -0
- package/dist/infra/crawl/links.js.map +1 -0
- package/dist/infra/crawl/namespace.d.ts +36 -0
- package/dist/infra/crawl/namespace.d.ts.map +1 -0
- package/dist/infra/crawl/namespace.js +36 -0
- package/dist/infra/crawl/namespace.js.map +1 -0
- package/dist/infra/crawl/robots.d.ts +16 -0
- package/dist/infra/crawl/robots.d.ts.map +1 -0
- package/dist/infra/crawl/robots.js +98 -0
- package/dist/infra/crawl/robots.js.map +1 -0
- package/dist/infra/crawl/schema.d.ts +222 -0
- package/dist/infra/crawl/schema.d.ts.map +1 -0
- package/dist/infra/crawl/schema.js +84 -0
- package/dist/infra/crawl/schema.js.map +1 -0
- package/dist/infra/credit-line/handle.d.ts +250 -0
- package/dist/infra/credit-line/handle.d.ts.map +1 -0
- package/dist/infra/credit-line/handle.js +618 -0
- package/dist/infra/credit-line/handle.js.map +1 -0
- package/dist/infra/credit-line/index.d.ts +3 -0
- package/dist/infra/credit-line/index.d.ts.map +1 -0
- package/dist/infra/credit-line/index.js +2 -0
- package/dist/infra/credit-line/index.js.map +1 -0
- package/dist/infra/credit-line/namespace.d.ts +7 -0
- package/dist/infra/credit-line/namespace.d.ts.map +1 -0
- package/dist/infra/credit-line/namespace.js +7 -0
- package/dist/infra/credit-line/namespace.js.map +1 -0
- package/dist/infra/credit-line/schema.d.ts +194 -0
- package/dist/infra/credit-line/schema.d.ts.map +1 -0
- package/dist/infra/credit-line/schema.js +89 -0
- package/dist/infra/credit-line/schema.js.map +1 -0
- package/dist/infra/email/inbound.d.ts +14 -2
- package/dist/infra/email/inbound.d.ts.map +1 -1
- package/dist/infra/email/inbound.js +5 -1
- package/dist/infra/email/inbound.js.map +1 -1
- package/dist/infra/email/index.d.ts +2 -2
- package/dist/infra/email/index.d.ts.map +1 -1
- package/dist/infra/email/index.js.map +1 -1
- package/dist/infra/email/mail.d.ts +43 -5
- package/dist/infra/email/mail.d.ts.map +1 -1
- package/dist/infra/email/mail.js +124 -9
- package/dist/infra/email/mail.js.map +1 -1
- package/dist/infra/email/mime.d.ts +6 -0
- package/dist/infra/email/mime.d.ts.map +1 -1
- package/dist/infra/email/mime.js +10 -2
- package/dist/infra/email/mime.js.map +1 -1
- package/dist/infra/email/schema.d.ts +17 -3
- package/dist/infra/email/schema.d.ts.map +1 -1
- package/dist/infra/email/schema.js +15 -4
- package/dist/infra/email/schema.js.map +1 -1
- package/dist/infra/email/sns.js +2 -2
- package/dist/infra/email/sns.js.map +1 -1
- package/dist/infra/email/unsubscribe.d.ts +13 -0
- package/dist/infra/email/unsubscribe.d.ts.map +1 -0
- package/dist/infra/email/unsubscribe.js +43 -0
- package/dist/infra/email/unsubscribe.js.map +1 -0
- package/dist/infra/fetch/handle.d.ts +20 -1
- package/dist/infra/fetch/handle.d.ts.map +1 -1
- package/dist/infra/fetch/handle.js +60 -28
- package/dist/infra/fetch/handle.js.map +1 -1
- package/dist/infra/fetch/index.d.ts +2 -2
- package/dist/infra/fetch/index.d.ts.map +1 -1
- package/dist/infra/fetch/index.js +1 -1
- package/dist/infra/fetch/index.js.map +1 -1
- package/dist/infra/fetch/namespace.d.ts +20 -2
- package/dist/infra/fetch/namespace.d.ts.map +1 -1
- package/dist/infra/fetch/namespace.js +20 -2
- package/dist/infra/fetch/namespace.js.map +1 -1
- package/dist/infra/join-requests/handle.d.ts +86 -0
- package/dist/infra/join-requests/handle.d.ts.map +1 -0
- package/dist/infra/join-requests/handle.js +233 -0
- package/dist/infra/join-requests/handle.js.map +1 -0
- package/dist/infra/join-requests/index.d.ts +3 -0
- package/dist/infra/join-requests/index.d.ts.map +1 -0
- package/dist/infra/join-requests/index.js +2 -0
- package/dist/infra/join-requests/index.js.map +1 -0
- package/dist/infra/join-requests/namespace.d.ts +7 -0
- package/dist/infra/join-requests/namespace.d.ts.map +1 -0
- package/dist/infra/join-requests/namespace.js +7 -0
- package/dist/infra/join-requests/namespace.js.map +1 -0
- package/dist/infra/join-requests/schema.d.ts +58 -0
- package/dist/infra/join-requests/schema.d.ts.map +1 -0
- package/dist/infra/join-requests/schema.js +31 -0
- package/dist/infra/join-requests/schema.js.map +1 -0
- package/dist/infra/outbox/core.d.ts +9 -0
- package/dist/infra/outbox/core.d.ts.map +1 -1
- package/dist/infra/outbox/core.js +14 -0
- package/dist/infra/outbox/core.js.map +1 -1
- package/dist/infra/support/handle.d.ts +43 -0
- package/dist/infra/support/handle.d.ts.map +1 -1
- package/dist/infra/support/handle.js +35 -7
- package/dist/infra/support/handle.js.map +1 -1
- package/dist/infra/support/http.d.ts +28 -0
- package/dist/infra/support/http.d.ts.map +1 -0
- package/dist/infra/support/http.js +217 -0
- package/dist/infra/support/http.js.map +1 -0
- package/dist/infra/support/index.d.ts +2 -0
- package/dist/infra/support/index.d.ts.map +1 -1
- package/dist/infra/support/index.js +1 -0
- package/dist/infra/support/index.js.map +1 -1
- package/dist/infra/support/namespace.d.ts +3 -0
- package/dist/infra/support/namespace.d.ts.map +1 -1
- package/dist/infra/support/namespace.js +3 -0
- package/dist/infra/support/namespace.js.map +1 -1
- package/dist/infra/support/schema.d.ts +4 -4
- package/dist/infra/webhook/outbound.d.ts +16 -0
- package/dist/infra/webhook/outbound.d.ts.map +1 -1
- package/dist/infra/webhook/outbound.js +78 -27
- package/dist/infra/webhook/outbound.js.map +1 -1
- package/dist/request/di/builder.d.ts +24 -1
- package/dist/request/di/builder.d.ts.map +1 -1
- package/dist/request/di/builder.js +35 -0
- package/dist/request/di/builder.js.map +1 -1
- package/dist/request/di/types.d.ts +30 -0
- package/dist/request/di/types.d.ts.map +1 -1
- package/dist/request/http/server.d.ts.map +1 -1
- package/dist/request/http/server.js +111 -20
- package/dist/request/http/server.js.map +1 -1
- package/dist/test/auto-setup.js +2 -2
- package/dist/test/auto-setup.js.map +1 -1
- package/dist/test/crawl-fixture.d.ts +53 -0
- package/dist/test/crawl-fixture.d.ts.map +1 -0
- package/dist/test/crawl-fixture.js +130 -0
- package/dist/test/crawl-fixture.js.map +1 -0
- package/dist/test/index.d.ts +2 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +2 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/progress.d.ts +7 -1
- package/dist/test/progress.d.ts.map +1 -1
- package/dist/test/progress.js +6 -0
- package/dist/test/progress.js.map +1 -1
- package/dist/test/reap-after-run.d.ts +3 -0
- package/dist/test/reap-after-run.d.ts.map +1 -0
- package/dist/test/reap-after-run.js +29 -0
- package/dist/test/reap-after-run.js.map +1 -0
- package/dist/test/reap.d.ts +11 -2
- package/dist/test/reap.d.ts.map +1 -1
- package/dist/test/reap.js +19 -12
- package/dist/test/reap.js.map +1 -1
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -1
- package/dist/test/setup.js +97 -31
- package/dist/test/setup.js.map +1 -1
- package/dist/test/vitest-plugin.d.ts.map +1 -1
- package/dist/test/vitest-plugin.js +8 -1
- package/dist/test/vitest-plugin.js.map +1 -1
- package/dist/test/vitest-workspace.d.ts +1 -0
- package/dist/test/vitest-workspace.d.ts.map +1 -1
- package/dist/test/vitest-workspace.js +1 -1
- package/dist/test/vitest-workspace.js.map +1 -1
- package/dist/test/vitest.d.ts +20 -0
- package/dist/test/vitest.d.ts.map +1 -1
- package/dist/test/vitest.js +41 -1
- package/dist/test/vitest.js.map +1 -1
- package/dist/trace/partition/sync.d.ts +8 -2
- package/dist/trace/partition/sync.d.ts.map +1 -1
- package/dist/trace/partition/sync.js +6 -3
- package/dist/trace/partition/sync.js.map +1 -1
- package/dist/workspace/generate.d.ts.map +1 -1
- package/dist/workspace/generate.js +1 -0
- package/dist/workspace/generate.js.map +1 -1
- package/package.json +1 -1
- package/dist/infra/email/sigv4.d.ts +0 -24
- package/dist/infra/email/sigv4.d.ts.map +0 -1
- package/dist/infra/email/sigv4.js +0 -55
- package/dist/infra/email/sigv4.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { readFileSync
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { createHash } from 'node:crypto';
|
|
3
3
|
import postgres from 'postgres';
|
|
4
4
|
import { scanStatements } from './statements.js';
|
|
5
5
|
import { stripPragmaLines } from './pragma.js';
|
|
6
|
+
import { listMigrations } from './history.js';
|
|
6
7
|
const NO_TRANSACTION_PRAGMA = '-- pipework:no-transaction';
|
|
7
8
|
export async function applyMigrations(options) {
|
|
8
9
|
const migrations = readMigrations(options);
|
|
@@ -11,6 +12,7 @@ export async function applyMigrations(options) {
|
|
|
11
12
|
const client = postgres(options.connectionUrl, { max: 1, onnotice: () => { } });
|
|
12
13
|
try {
|
|
13
14
|
const table = quoteIdent(options.migrationsTable);
|
|
15
|
+
const prepared = (detail) => options.onPrepare?.(detail);
|
|
14
16
|
// "Applied" is MEMBERSHIP — this exact migration (by tag, verified by
|
|
15
17
|
// content hash) has a tracker row — never a timestamp high-water mark.
|
|
16
18
|
// A threshold silently skips any unapplied migration dated earlier than
|
|
@@ -25,19 +27,23 @@ export async function applyMigrations(options) {
|
|
|
25
27
|
tag text
|
|
26
28
|
)
|
|
27
29
|
`);
|
|
30
|
+
prepared('tracker table');
|
|
28
31
|
// Deployed databases predate the tag column: add it, then recover each
|
|
29
32
|
// legacy row's identity by matching its recorded content hash against the
|
|
30
33
|
// journal's files (min(id) claims one row per tag, so a duplicated hash
|
|
31
34
|
// can't double-claim). Rows matching no current journal entry keep a NULL
|
|
32
35
|
// tag and never participate in membership.
|
|
33
36
|
await client.unsafe(`ALTER TABLE ${table} ADD COLUMN IF NOT EXISTS tag text`);
|
|
34
|
-
for (const migration of migrations) {
|
|
37
|
+
for (const [i, migration] of migrations.entries()) {
|
|
35
38
|
await client.unsafe(`UPDATE ${table} SET tag = $1
|
|
36
39
|
WHERE id = (SELECT min(id) FROM ${table} WHERE hash = $2 AND tag IS NULL)`, [migration.tag, migration.hash]);
|
|
40
|
+
prepared(`tags ${i + 1}/${migrations.length}`);
|
|
37
41
|
}
|
|
38
42
|
await client.unsafe(`CREATE UNIQUE INDEX IF NOT EXISTS ${quoteIdent(`${options.migrationsTable}_tag_key`)} ON ${table} (tag)`);
|
|
43
|
+
prepared('tag index');
|
|
39
44
|
const rows = await client.unsafe(`SELECT tag, hash FROM ${table} WHERE tag IS NOT NULL`);
|
|
40
45
|
const appliedHashByTag = new Map(rows.map((row) => [row.tag, row.hash]));
|
|
46
|
+
prepared('applied read');
|
|
41
47
|
// A no-transaction file has no rollback: interrupted between statements it
|
|
42
48
|
// leaves the database half-changed with no tracker row, and the rerun
|
|
43
49
|
// replays from the top and dies on the first already-applied statement.
|
|
@@ -61,6 +67,7 @@ export async function applyMigrations(options) {
|
|
|
61
67
|
for (const row of partial) {
|
|
62
68
|
progressByTag.set(row.tag, { hash: row.hash, done: row.statements_done });
|
|
63
69
|
}
|
|
70
|
+
prepared('progress table');
|
|
64
71
|
}
|
|
65
72
|
let applied = 0;
|
|
66
73
|
for (const migration of migrations) {
|
|
@@ -90,14 +97,16 @@ export async function applyMigrations(options) {
|
|
|
90
97
|
// landed yet — instead of the whole file.
|
|
91
98
|
await client.unsafe(`INSERT INTO ${progress} (tag, hash, statements_done) VALUES ($1, $2, $3)
|
|
92
99
|
ON CONFLICT (tag) DO UPDATE SET statements_done = EXCLUDED.statements_done, updated_at = now()`, [migration.tag, migration.hash, i + 1]);
|
|
100
|
+
options.onStatement?.(migration.tag, i + 1, migration.statements.length, applied + 1, migrations.length);
|
|
93
101
|
}
|
|
94
102
|
await client.unsafe(`INSERT INTO ${table} ("hash", "created_at", "tag") VALUES ($1, $2, $3)`, [migration.hash, migration.folderMillis, migration.tag]);
|
|
95
103
|
await client.unsafe(`DELETE FROM ${progress} WHERE tag = $1`, [migration.tag]);
|
|
96
104
|
}
|
|
97
105
|
else {
|
|
98
106
|
await client.begin(async (tx) => {
|
|
99
|
-
for (const stmt of migration.statements) {
|
|
107
|
+
for (const [i, stmt] of migration.statements.entries()) {
|
|
100
108
|
await tx.unsafe(stmt);
|
|
109
|
+
options.onStatement?.(migration.tag, i + 1, migration.statements.length, applied + 1, migrations.length);
|
|
101
110
|
}
|
|
102
111
|
await tx.unsafe(`INSERT INTO ${table} ("hash", "created_at", "tag") VALUES ($1, $2, $3)`, [migration.hash, migration.folderMillis, migration.tag]);
|
|
103
112
|
});
|
|
@@ -112,18 +121,9 @@ export async function applyMigrations(options) {
|
|
|
112
121
|
}
|
|
113
122
|
}
|
|
114
123
|
export function readMigrations(options) {
|
|
115
|
-
const journalPath = `${options.migrationsFolder}/meta/_journal.json`;
|
|
116
|
-
if (!existsSync(journalPath)) {
|
|
117
|
-
throw new Error(`No migration journal found at ${journalPath}.\n\n` +
|
|
118
|
-
` Run \`pipework generate\` to create migrations.\n`);
|
|
119
|
-
}
|
|
120
|
-
const journal = JSON.parse(readFileSync(journalPath, 'utf-8'));
|
|
121
124
|
const migrations = [];
|
|
122
|
-
for (const entry of
|
|
125
|
+
for (const entry of listMigrations(options.migrationsFolder)) {
|
|
123
126
|
const filePath = `${options.migrationsFolder}/${entry.tag}.sql`;
|
|
124
|
-
if (!existsSync(filePath)) {
|
|
125
|
-
throw new Error(`Missing migration file: ${filePath}`);
|
|
126
|
-
}
|
|
127
127
|
let raw = readFileSync(filePath, 'utf-8');
|
|
128
128
|
const noTransaction = raw.includes(NO_TRANSACTION_PRAGMA);
|
|
129
129
|
if (options.stripConcurrently === true) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,qBAAqB,GAAG,4BAA4B,CAAA;AAmD1D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB;IACzD,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAErC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAA;IAE9E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAA;QAEtE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,MAAM,CAAC,MAAM,CAAC;mCACW,KAAK;;;;;;KAMnC,CAAC,CAAA;QACF,QAAQ,CAAC,eAAe,CAAC,CAAA;QACzB,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,2CAA2C;QAC3C,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,oCAAoC,CAAC,CAAA;QAC7E,KAAK,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,CAAC,MAAM,CACjB,UAAU,KAAK;2CACoB,KAAK,mCAAmC,EAC3E,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAChC,CAAA;YACD,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,MAAM,MAAM,CAAC,MAAM,CACjB,qCAAqC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,UAAU,CAAC,OAAO,KAAK,QAAQ,CAC1G,CAAA;QACD,QAAQ,CAAC,WAAW,CAAC,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAC9B,yBAAyB,KAAK,wBAAwB,CACvD,CAAA;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzE,QAAQ,CAAC,cAAc,CAAC,CAAA;QAExB,2EAA2E;QAC3E,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;QACvE,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAChF,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0C,CAAA;QACvE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,MAAM,CAAC,MAAM,CAAC;qCACW,QAAQ;;;;;;OAMtC,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CACjC,0CAA0C,QAAQ,EAAE,CACrD,CAAA;YACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAA;YAC3E,CAAC;YACD,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,CAAC,GAAG,+BAA+B,OAAO,CAAC,eAAe,YAAY;wBAC3F,6CAA6C,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB;wBACtF,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,4DAA4D;wBAC1F,gJAAgJ;wBAChJ,sEAAsE,SAAS,CAAC,GAAG,aAAa;wBAChG,+FAA+F;wBAC/F,uBAAuB,CAC1B,CAAA;gBACH,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;gBAC9F,IAAI,IAAI,GAAG,CAAC;oBAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAEtF,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAA;oBAC7C,qEAAqE;oBACrE,iEAAiE;oBACjE,+DAA+D;oBAC/D,qEAAqE;oBACrE,0CAA0C;oBAC1C,MAAM,MAAM,CAAC,MAAM,CACjB,eAAe,QAAQ;4GACyE,EAChG,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CACvC,CAAA;oBACD,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;gBAC1G,CAAC;gBACD,MAAM,MAAM,CAAC,MAAM,CACjB,eAAe,KAAK,oDAAoD,EACxE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,CACxD,CAAA;gBACD,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,QAAQ,iBAAiB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;YAChF,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;oBAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;wBACvD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;wBACrB,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;oBAC1G,CAAC;oBACD,MAAM,EAAE,CAAC,MAAM,CACb,eAAe,KAAK,oDAAoD,EACxE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,CACxD,CAAA;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,EAAE,CAAA;YACT,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAClE,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAqB;IAClD,MAAM,UAAU,GAAgB,EAAE,CAAA;IAElC,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,MAAM,CAAA;QAC/D,IAAI,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzC,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;QAEzD,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACpC,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;QAEvC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAChD,UAAU,CAAC,IAAI,CAAC;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;YACtB,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAClD,YAAY,EAAE,KAAK,CAAC,IAAI;YACxB,UAAU;YACV,aAAa;SACd,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAgB,EAAE,SAAoB;IACzD,OAAO,QAAQ,KAAK,SAAS,CAAC,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC,cAAc,CAAA;AAC7E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,cAAc,CAAC,GAAG,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,eAAuB;IACvD,OAAO,GAAG,eAAe,WAAW,CAAA;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,SAAoB,EACpB,QAAoD,EACpD,eAAuB;IAEvB,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,CAAA;IACpC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,CAAC,GAAG,uBAAuB,QAAQ,CAAC,IAAI,oCAAoC;YACjG,+BAA+B,iBAAiB,CAAC,eAAe,CAAC,8BAA8B;YAC/F,kCAAkC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB;YAC7E,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,gEAAgE;YAC9F,gGAAgG;YAChG,gGAAgG;YAChG,oCAAoC,SAAS,CAAC,GAAG,aAAa;YAC9D,GAAG,iBAAiB,CAAC,eAAe,CAAC,0BAA0B,CAClE,CAAA;IACH,CAAC;IACD,6EAA6E;IAC7E,kEAAkE;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAA;AACrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,yEAAyE;IACzE,UAAU,EAAE,UAAU,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,WAAW,EAAE,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,oBAAoB,CAkD7G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CA6BtE;AAED,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { readFileSync, existsSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { analyzeSQL, formatHazards } from './safety.js';
|
|
4
4
|
import { hasPragma, PRAGMA_FOR } from './pragma.js';
|
|
5
|
+
import { listMigrations } from './history.js';
|
|
5
6
|
/**
|
|
6
7
|
* Scans pending migrations for destructive and locking operations.
|
|
7
8
|
*
|
|
@@ -14,11 +15,7 @@ import { hasPragma, PRAGMA_FOR } from './pragma.js';
|
|
|
14
15
|
* behaviour when nothing is known to be applied.
|
|
15
16
|
*/
|
|
16
17
|
export function checkMigrations(migrationsFolder, applied) {
|
|
17
|
-
const
|
|
18
|
-
if (!existsSync(journalPath)) {
|
|
19
|
-
return { safe: true, hasDestructive: false, hasLocking: false, hasDynamic: false, declared: true, fileHazards: [] };
|
|
20
|
-
}
|
|
21
|
-
const journal = JSON.parse(readFileSync(journalPath, 'utf-8'));
|
|
18
|
+
const entries = listMigrations(migrationsFolder);
|
|
22
19
|
const fileHazards = [];
|
|
23
20
|
let hasDestructive = false;
|
|
24
21
|
let hasLocking = false;
|
|
@@ -31,7 +28,7 @@ export function checkMigrations(migrationsFolder, applied) {
|
|
|
31
28
|
return applied.tags.has(entry.tag);
|
|
32
29
|
return entry.when <= applied.threshold;
|
|
33
30
|
};
|
|
34
|
-
for (const entry of
|
|
31
|
+
for (const entry of entries) {
|
|
35
32
|
if (isApplied(entry))
|
|
36
33
|
continue;
|
|
37
34
|
const sqlPath = join(migrationsFolder, `${entry.tag}.sql`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAuC,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,6 +106,14 @@ export type DiffOp = {
|
|
|
106
106
|
tableName: string;
|
|
107
107
|
tableSchema: string;
|
|
108
108
|
unique: PwUniqueSnapshot;
|
|
109
|
+
tablePartitioned: boolean;
|
|
110
|
+
} | {
|
|
111
|
+
type: 'replace_unique';
|
|
112
|
+
tableName: string;
|
|
113
|
+
tableSchema: string;
|
|
114
|
+
from: PwUniqueSnapshot;
|
|
115
|
+
to: PwUniqueSnapshot;
|
|
116
|
+
tablePartitioned: boolean;
|
|
109
117
|
} | {
|
|
110
118
|
type: 'drop_unique';
|
|
111
119
|
tableName: string;
|
|
@@ -116,6 +124,14 @@ export type DiffOp = {
|
|
|
116
124
|
tableName: string;
|
|
117
125
|
tableSchema: string;
|
|
118
126
|
pk: PwCompositePKSnapshot;
|
|
127
|
+
tablePartitioned: boolean;
|
|
128
|
+
} | {
|
|
129
|
+
type: 'replace_composite_pk';
|
|
130
|
+
tableName: string;
|
|
131
|
+
tableSchema: string;
|
|
132
|
+
from: PwCompositePKSnapshot;
|
|
133
|
+
to: PwCompositePKSnapshot;
|
|
134
|
+
tablePartitioned: boolean;
|
|
119
135
|
} | {
|
|
120
136
|
type: 'drop_composite_pk';
|
|
121
137
|
tableName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACxF;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACzF;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC/I;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,4BAA4B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,0BAA0B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3G;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,4BAA4B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACxG;IAAE,IAAI,EAAE,6BAA6B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACvG;IAAE,IAAI,EAAE,4BAA4B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GACxF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,EAAE,EAAE,eAAe,CAAA;CAAE,GAC7G;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,oBAAoB,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,GACxH;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,oBAAoB,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,14 +78,14 @@ function diffDropConstraints(prev, cur, ops) {
|
|
|
78
78
|
for (const name of Object.keys(prev.uniqueConstraints)) {
|
|
79
79
|
const prevUc = prev.uniqueConstraints[name];
|
|
80
80
|
const curUc = cur.uniqueConstraints[name];
|
|
81
|
-
if (curUc === undefined || !uniqueEqual(prevUc, curUc)) {
|
|
81
|
+
if (curUc === undefined || (!uniqueEqual(prevUc, curUc) && !canSwapOnline(prev, cur, prevUc.columns))) {
|
|
82
82
|
ops.push({ type: 'drop_unique', tableName: tn, tableSchema: ts, unique: prevUc });
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
for (const name of Object.keys(prev.compositePrimaryKeys)) {
|
|
86
86
|
const prevPk = prev.compositePrimaryKeys[name];
|
|
87
87
|
const curPk = cur.compositePrimaryKeys[name];
|
|
88
|
-
if (curPk === undefined || !arraysEqual(prevPk.columns, curPk.columns)) {
|
|
88
|
+
if (curPk === undefined || (!arraysEqual(prevPk.columns, curPk.columns) && !canSwapOnline(prev, cur, prevPk.columns))) {
|
|
89
89
|
ops.push({ type: 'drop_composite_pk', tableName: tn, tableSchema: ts, pk: prevPk });
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -152,18 +152,31 @@ function diffColumns(prev, cur, ops) {
|
|
|
152
152
|
function diffAddConstraints(prev, cur, ops) {
|
|
153
153
|
const tn = cur.name;
|
|
154
154
|
const ts = cur.schema;
|
|
155
|
+
const partitioned = cur.partitionBy !== undefined;
|
|
155
156
|
for (const name of Object.keys(cur.compositePrimaryKeys)) {
|
|
156
157
|
const prevPk = prev.compositePrimaryKeys[name];
|
|
157
158
|
const curPk = cur.compositePrimaryKeys[name];
|
|
158
159
|
if (prevPk === undefined || !arraysEqual(prevPk.columns, curPk.columns)) {
|
|
159
|
-
|
|
160
|
+
if (prevPk !== undefined && canSwapOnline(prev, cur, prevPk.columns)) {
|
|
161
|
+
ops.push({ type: 'replace_composite_pk', tableName: tn, tableSchema: ts, from: prevPk, to: curPk, tablePartitioned: partitioned });
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
assertNoIndexNamed(cur, name, 'primary key');
|
|
165
|
+
ops.push({ type: 'add_composite_pk', tableName: tn, tableSchema: ts, pk: curPk, tablePartitioned: partitioned });
|
|
166
|
+
}
|
|
160
167
|
}
|
|
161
168
|
}
|
|
162
169
|
for (const name of Object.keys(cur.uniqueConstraints)) {
|
|
163
170
|
const prevUc = prev.uniqueConstraints[name];
|
|
164
171
|
const curUc = cur.uniqueConstraints[name];
|
|
165
172
|
if (prevUc === undefined || !uniqueEqual(prevUc, curUc)) {
|
|
166
|
-
|
|
173
|
+
if (prevUc !== undefined && canSwapOnline(prev, cur, prevUc.columns)) {
|
|
174
|
+
ops.push({ type: 'replace_unique', tableName: tn, tableSchema: ts, from: prevUc, to: curUc, tablePartitioned: partitioned });
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
assertNoIndexNamed(cur, name, 'unique constraint');
|
|
178
|
+
ops.push({ type: 'add_unique', tableName: tn, tableSchema: ts, unique: curUc, tablePartitioned: partitioned });
|
|
179
|
+
}
|
|
167
180
|
}
|
|
168
181
|
}
|
|
169
182
|
for (const name of Object.keys(cur.checks)) {
|
|
@@ -191,11 +204,36 @@ function diffAddConstraints(prev, cur, ops) {
|
|
|
191
204
|
}
|
|
192
205
|
}
|
|
193
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* A changed key constraint is swapped in one statement (new index built
|
|
209
|
+
* beside it first) only while the old key's columns survive the migration
|
|
210
|
+
* unchanged; otherwise the old constraint is dropped up front, as before.
|
|
211
|
+
*/
|
|
212
|
+
function canSwapOnline(prev, cur, oldColumns) {
|
|
213
|
+
return oldColumns.every(c => {
|
|
214
|
+
const p = prev.columns[c];
|
|
215
|
+
const n = cur.columns[c];
|
|
216
|
+
return p !== undefined && n !== undefined && p.type === n.type && p.collation === n.collation;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* An added key constraint builds its index under the constraint's name after
|
|
221
|
+
* clearing any leftover of that name, so a declared index may not share it.
|
|
222
|
+
*/
|
|
223
|
+
function assertNoIndexNamed(cur, name, what) {
|
|
224
|
+
if (cur.indexes[name] === undefined)
|
|
225
|
+
return;
|
|
226
|
+
throw new Error(`[pipework] The ${what} "${name}" on "${cur.name}" has the same name as an index on that table. ` +
|
|
227
|
+
'Give one of them another name.');
|
|
228
|
+
}
|
|
194
229
|
function fkEqual(a, b) {
|
|
195
230
|
return a.foreignTable === b.foreignTable
|
|
196
231
|
&& a.foreignSchema === b.foreignSchema
|
|
197
232
|
&& a.onUpdate === b.onUpdate
|
|
198
233
|
&& a.onDelete === b.onDelete
|
|
234
|
+
&& (a.onDeleteColumns === undefined || b.onDeleteColumns === undefined
|
|
235
|
+
? a.onDeleteColumns === b.onDeleteColumns
|
|
236
|
+
: arraysEqual(a.onDeleteColumns, b.onDeleteColumns))
|
|
199
237
|
&& arraysEqual(a.columns, b.columns)
|
|
200
238
|
&& arraysEqual(a.foreignColumns, b.foreignColumns);
|
|
201
239
|
}
|
|
@@ -207,6 +245,8 @@ function withEqual(a, b) {
|
|
|
207
245
|
function indexEqual(a, b) {
|
|
208
246
|
if (a.unique !== b.unique || a.method !== b.method || a.where !== b.where)
|
|
209
247
|
return false;
|
|
248
|
+
if ((a.nullsNotDistinct ?? false) !== (b.nullsNotDistinct ?? false))
|
|
249
|
+
return false;
|
|
210
250
|
if (!withEqual(a.with, b.with))
|
|
211
251
|
return false;
|
|
212
252
|
if (a.columns.length !== b.columns.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { ResolvedDatabase, ResolvedDoor } from '../../core/config/load.js';
|
|
|
2
2
|
export interface GenerateResult {
|
|
3
3
|
database: string;
|
|
4
4
|
migrationFile: string | null;
|
|
5
|
-
snapshotFile: string;
|
|
5
|
+
snapshotFile: string | null;
|
|
6
6
|
statements: number;
|
|
7
7
|
}
|
|
8
8
|
export declare function generateForDatabase(dbConfig: ResolvedDatabase, migrationName?: string, internalDefinitions?: () => Promise<Record<string, unknown>>, doors?: readonly ResolvedDoor[] | (() => readonly ResolvedDoor[])): Promise<GenerateResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAwB/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,CAAC,EAAE,MAAM,EACtB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC5D,KAAK,GAAE,SAAS,YAAY,EAAE,GAAG,CAAC,MAAM,SAAS,YAAY,EAAE,CAAM,GACpE,OAAO,CAAC,cAAc,CAAC,CAmHzB;AAOD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO7D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { existsSync, mkdirSync,
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import { join, resolve } from 'node:path';
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
4
|
import { glob } from 'node:fs/promises';
|
|
@@ -8,7 +8,8 @@ import { diffDoors, doorSnapshots } from './door-generate.js';
|
|
|
8
8
|
import { generateRlsStatements } from './rls-generate.js';
|
|
9
9
|
import { generateAppendOnlyStatements } from './append-only-generate.js';
|
|
10
10
|
import { definitions } from '../domain/index.js';
|
|
11
|
-
import { buildSnapshot
|
|
11
|
+
import { buildSnapshot } from './snapshot.js';
|
|
12
|
+
import { deltaPath, listMigrations, readFoldedSnapshot, snapshotDelta } from './history.js';
|
|
12
13
|
import { diffSnapshots, diffOpTableName } from './diff.js';
|
|
13
14
|
import { emitSQL } from './sql-emit.js';
|
|
14
15
|
import { PARTITIONED_TRACE_TABLE_NAMES } from '../../trace/partition/tables.js';
|
|
@@ -64,7 +65,7 @@ export async function generateForDatabase(dbConfig, migrationName, internalDefin
|
|
|
64
65
|
imports[key] = value;
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
const prevSnapshot =
|
|
68
|
+
const prevSnapshot = readFoldedSnapshot(migrationsDir);
|
|
68
69
|
const currentSnapshot = buildSnapshot(imports, prevSnapshot.id);
|
|
69
70
|
// Doors are not tables, so the table diff never sees them: their policies are
|
|
70
71
|
// diffed against the doors the previous snapshot recorded.
|
|
@@ -81,17 +82,14 @@ export async function generateForDatabase(dbConfig, migrationName, internalDefin
|
|
|
81
82
|
const emittableOps = ops.filter(op => !PARTITIONED_TRACE_TABLE_NAMES.has(diffOpTableName(op)));
|
|
82
83
|
const statements = emitSQL(emittableOps).map(idempotentAuthTable);
|
|
83
84
|
if (statements.length === 0 && doorStatements.length === 0) {
|
|
84
|
-
const snapshotFile = writeSnapshot(metaDir, currentSnapshot, readJournal(metaDir));
|
|
85
85
|
return {
|
|
86
86
|
database: dbConfig.name,
|
|
87
87
|
migrationFile: null,
|
|
88
|
-
snapshotFile,
|
|
88
|
+
snapshotFile: null,
|
|
89
89
|
statements: 0,
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
const
|
|
93
|
-
const idx = journal.entries.length;
|
|
94
|
-
const tag = formatTag(idx, migrationName);
|
|
92
|
+
const tag = freeTag(migrationsDir, migrationName);
|
|
95
93
|
const joined = statements.map(s => s + ';').join('\n');
|
|
96
94
|
const withTenantRls = dbConfig.rls !== undefined
|
|
97
95
|
? generateRlsStatements(joined, definitions(), dbConfig.rls.sessionVar, dbConfig.rls.force)
|
|
@@ -104,7 +102,8 @@ export async function generateForDatabase(dbConfig, migrationName, internalDefin
|
|
|
104
102
|
const sqlContent = postProcessMigration(withAppendOnly);
|
|
105
103
|
const migrationFile = join(migrationsDir, `${tag}.sql`);
|
|
106
104
|
writeFileSync(migrationFile, sqlContent, 'utf-8');
|
|
107
|
-
const snapshotFile =
|
|
105
|
+
const snapshotFile = deltaPath(migrationsDir, tag);
|
|
106
|
+
writeFileSync(snapshotFile, JSON.stringify(snapshotDelta(prevSnapshot, currentSnapshot), null, 2), 'utf-8');
|
|
108
107
|
return {
|
|
109
108
|
database: dbConfig.name,
|
|
110
109
|
migrationFile,
|
|
@@ -125,49 +124,18 @@ export function idempotentAuthTable(statement) {
|
|
|
125
124
|
return statement;
|
|
126
125
|
return statement.replace(AUTH_CREATE_RE, (_all, kind, name, on) => `CREATE ${kind} IF NOT EXISTS ${name}${on ?? ''}`);
|
|
127
126
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return raw;
|
|
140
|
-
}
|
|
141
|
-
function readJournal(metaDir) {
|
|
142
|
-
const journalPath = join(metaDir, '_journal.json');
|
|
143
|
-
if (!existsSync(journalPath)) {
|
|
144
|
-
return { version: 'pw1', dialect: 'postgresql', entries: [] };
|
|
145
|
-
}
|
|
146
|
-
return JSON.parse(readFileSync(journalPath, 'utf-8'));
|
|
147
|
-
}
|
|
148
|
-
function writeSnapshot(metaDir, snapshot, journal, idx, tag) {
|
|
149
|
-
const snapshotIdx = idx ?? journal.entries.length;
|
|
150
|
-
const snapshotFile = join(metaDir, `${String(snapshotIdx).padStart(4, '0')}_snapshot.json`);
|
|
151
|
-
writeFileSync(snapshotFile, JSON.stringify(snapshot, null, 2), 'utf-8');
|
|
152
|
-
if (idx !== undefined && tag !== undefined) {
|
|
153
|
-
journal.entries.push({
|
|
154
|
-
idx,
|
|
155
|
-
version: 'pw1',
|
|
156
|
-
when: Date.now(),
|
|
157
|
-
tag,
|
|
158
|
-
breakpoints: true,
|
|
159
|
-
});
|
|
160
|
-
writeFileSync(join(metaDir, '_journal.json'), JSON.stringify(journal, null, 2), 'utf-8');
|
|
161
|
-
}
|
|
162
|
-
return snapshotFile;
|
|
163
|
-
}
|
|
164
|
-
function formatTag(idx, name) {
|
|
165
|
-
const prefix = String(idx).padStart(4, '0');
|
|
166
|
-
if (name !== undefined) {
|
|
167
|
-
const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '');
|
|
168
|
-
return `${prefix}_${slug}`;
|
|
127
|
+
/** `YYYYMMDDHHMMSS[_slug]` from the UTC clock, moved forward a second at a time until no migration holds that timestamp. */
|
|
128
|
+
function freeTag(migrationsDir, name) {
|
|
129
|
+
const taken = new Set(listMigrations(migrationsDir).map(m => m.tag.slice(0, 14)));
|
|
130
|
+
const slug = name === undefined ? '' : name.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '');
|
|
131
|
+
const at = new Date();
|
|
132
|
+
at.setUTCMilliseconds(0);
|
|
133
|
+
for (;;) {
|
|
134
|
+
const stamp = at.toISOString().replace(/\D/g, '').slice(0, 14);
|
|
135
|
+
if (!taken.has(stamp))
|
|
136
|
+
return slug === '' ? stamp : `${stamp}_${slug}`;
|
|
137
|
+
at.setTime(at.getTime() + 1000);
|
|
169
138
|
}
|
|
170
|
-
return prefix;
|
|
171
139
|
}
|
|
172
140
|
async function resolveSchemaFiles(schema, baseDir) {
|
|
173
141
|
const patterns = Array.isArray(schema) ? schema : [schema];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type PwSnapshot, type PwTableSnapshot, type PwPartitionSnapshot } from './snapshot.js';
|
|
2
|
+
import type { DoorSnapshot } from './door-generate.js';
|
|
3
|
+
export interface MigrationEntry {
|
|
4
|
+
tag: string;
|
|
5
|
+
when: number;
|
|
6
|
+
}
|
|
7
|
+
type Sub<K extends keyof PwTableSnapshot> = Record<string, NonNullable<PwTableSnapshot[K]> extends Record<string, infer V> ? V | null : never>;
|
|
8
|
+
export interface TableDelta {
|
|
9
|
+
name: string;
|
|
10
|
+
schema: string;
|
|
11
|
+
partitionBy: PwPartitionSnapshot | null;
|
|
12
|
+
columns: Sub<'columns'>;
|
|
13
|
+
indexes: Sub<'indexes'>;
|
|
14
|
+
foreignKeys: Sub<'foreignKeys'>;
|
|
15
|
+
checks: Sub<'checks'>;
|
|
16
|
+
uniqueConstraints: Sub<'uniqueConstraints'>;
|
|
17
|
+
compositePrimaryKeys: Sub<'compositePrimaryKeys'>;
|
|
18
|
+
}
|
|
19
|
+
export interface SnapshotDelta {
|
|
20
|
+
version: 'pw1-delta';
|
|
21
|
+
tables: Record<string, TableDelta | null>;
|
|
22
|
+
doors?: Record<string, DoorSnapshot | null>;
|
|
23
|
+
}
|
|
24
|
+
/** The folder's migrations in apply order: legacy `NNNN` tags by index, then timestamp tags by time. */
|
|
25
|
+
export declare function listMigrations(folder: string): MigrationEntry[];
|
|
26
|
+
export declare function timestampMillis(tag: string): number;
|
|
27
|
+
export declare function isTimestampTag(tag: string): boolean;
|
|
28
|
+
export declare function deltaPath(folder: string, tag: string): string;
|
|
29
|
+
/** The element-level change from one snapshot to the next; only changed tables, elements and doors appear. */
|
|
30
|
+
export declare function snapshotDelta(prev: PwSnapshot, next: PwSnapshot): SnapshotDelta;
|
|
31
|
+
/** `snap` with `delta` applied. Pure: the input is not modified. */
|
|
32
|
+
export declare function applyDelta(snap: PwSnapshot, delta: SnapshotDelta): PwSnapshot;
|
|
33
|
+
/** The schema as of every migration in the folder: the legacy snapshot, then each timestamp migration's delta. */
|
|
34
|
+
export declare function readFoldedSnapshot(folder: string): PwSnapshot;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC/G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAKD,KAAK,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;AAE9I,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACvC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvB,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,CAAA;IAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrB,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAC3C,oBAAoB,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAA;CAC5C;AAWD,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAmC/D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AA0BD,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,CAiC/E;AAWD,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,UAAU,CAyB7E;AAED,kHAAkH;AAClH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAW7D"}
|