@rudderhq/db 0.7.2-canary.0 → 0.7.3

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.
Files changed (113) hide show
  1. package/dist/backup-lib.d.ts.map +1 -1
  2. package/dist/backup-lib.js +60 -36
  3. package/dist/backup-lib.js.map +1 -1
  4. package/dist/backup-lib.test.js +122 -2
  5. package/dist/backup-lib.test.js.map +1 -1
  6. package/dist/client.d.ts +25 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +309 -20
  9. package/dist/client.js.map +1 -1
  10. package/dist/client.test.js +416 -23
  11. package/dist/client.test.js.map +1 -1
  12. package/dist/embedded-postgres-recovery.d.ts +11 -0
  13. package/dist/embedded-postgres-recovery.d.ts.map +1 -1
  14. package/dist/embedded-postgres-recovery.js +50 -11
  15. package/dist/embedded-postgres-recovery.js.map +1 -1
  16. package/dist/embedded-postgres-recovery.test.js +50 -2
  17. package/dist/embedded-postgres-recovery.test.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/local-postgres-provider.d.ts +3 -0
  23. package/dist/local-postgres-provider.d.ts.map +1 -1
  24. package/dist/local-postgres-provider.js +92 -10
  25. package/dist/local-postgres-provider.js.map +1 -1
  26. package/dist/local-postgres-provider.test.js +24 -1
  27. package/dist/local-postgres-provider.test.js.map +1 -1
  28. package/dist/migration-manifest.d.ts +41 -0
  29. package/dist/migration-manifest.d.ts.map +1 -0
  30. package/dist/migration-manifest.js +186 -0
  31. package/dist/migration-manifest.js.map +1 -0
  32. package/dist/migration-manifest.test.d.ts +2 -0
  33. package/dist/migration-manifest.test.d.ts.map +1 -0
  34. package/dist/migration-manifest.test.js +88 -0
  35. package/dist/migration-manifest.test.js.map +1 -0
  36. package/dist/migration-runtime.d.ts.map +1 -1
  37. package/dist/migration-runtime.js +18 -33
  38. package/dist/migration-runtime.js.map +1 -1
  39. package/dist/migrations/0143_goal_contract.sql +97 -0
  40. package/dist/migrations/0144_eminent_umar.sql +16 -0
  41. package/dist/migrations/0145_public_nehzno.sql +96 -0
  42. package/dist/migrations/0146_medical_roulette.sql +1 -0
  43. package/dist/migrations/0147_github_mcp_provider.sql +4 -0
  44. package/dist/migrations/0148_chat_message_transcript_entries.sql +20 -0
  45. package/dist/migrations/0149_app_builder_verified_source_ready.sql +3 -0
  46. package/dist/migrations/0150_rudder_plugins_v1.sql +114 -0
  47. package/dist/migrations/0151_agent_issue_creation_requests.sql +49 -0
  48. package/dist/migrations/chat-transcript-storage.test.ts +211 -0
  49. package/dist/migrations/github-mcp-provider.test.ts +20 -0
  50. package/dist/migrations/meta/0143_snapshot.json +25318 -0
  51. package/dist/migrations/meta/0144_snapshot.json +25336 -0
  52. package/dist/migrations/meta/0145_snapshot.json +27010 -0
  53. package/dist/migrations/meta/0146_snapshot.json +27016 -0
  54. package/dist/migrations/meta/0147_snapshot.json +27016 -0
  55. package/dist/migrations/meta/_journal.json +63 -0
  56. package/dist/schema/{plugin_jobs.d.ts → agent_issue_creation_requests.d.ts} +134 -142
  57. package/dist/schema/{plugin_jobs.d.ts.map → agent_issue_creation_requests.d.ts.map} +1 -1
  58. package/dist/schema/agent_issue_creation_requests.js +40 -0
  59. package/dist/schema/agent_issue_creation_requests.js.map +1 -0
  60. package/dist/schema/app_builder_apps.js +1 -1
  61. package/dist/schema/app_builder_apps.js.map +1 -1
  62. package/dist/schema/chat_message_transcript_entries.d.ts +82 -0
  63. package/dist/schema/chat_message_transcript_entries.d.ts.map +1 -0
  64. package/dist/schema/chat_message_transcript_entries.js +20 -0
  65. package/dist/schema/chat_message_transcript_entries.js.map +1 -0
  66. package/dist/schema/goals.d.ts +2110 -0
  67. package/dist/schema/goals.d.ts.map +1 -1
  68. package/dist/schema/goals.js +169 -1
  69. package/dist/schema/goals.js.map +1 -1
  70. package/dist/schema/index.d.ts +4 -9
  71. package/dist/schema/index.d.ts.map +1 -1
  72. package/dist/schema/index.js +4 -9
  73. package/dist/schema/index.js.map +1 -1
  74. package/dist/schema/issues.d.ts.map +1 -1
  75. package/dist/schema/issues.js +4 -0
  76. package/dist/schema/issues.js.map +1 -1
  77. package/dist/schema/mcp_connections.js +2 -2
  78. package/dist/schema/mcp_connections.js.map +1 -1
  79. package/dist/schema/rudder_plugins.d.ts +978 -0
  80. package/dist/schema/rudder_plugins.d.ts.map +1 -0
  81. package/dist/schema/rudder_plugins.js +91 -0
  82. package/dist/schema/rudder_plugins.js.map +1 -0
  83. package/package.json +2 -2
  84. package/dist/schema/plugin_config.d.ts +0 -123
  85. package/dist/schema/plugin_config.d.ts.map +0 -1
  86. package/dist/schema/plugin_config.js +0 -26
  87. package/dist/schema/plugin_config.js.map +0 -1
  88. package/dist/schema/plugin_entities.d.ts +0 -213
  89. package/dist/schema/plugin_entities.d.ts.map +0 -1
  90. package/dist/schema/plugin_entities.js +0 -37
  91. package/dist/schema/plugin_entities.js.map +0 -1
  92. package/dist/schema/plugin_jobs.js +0 -83
  93. package/dist/schema/plugin_jobs.js.map +0 -1
  94. package/dist/schema/plugin_logs.d.ts +0 -125
  95. package/dist/schema/plugin_logs.d.ts.map +0 -1
  96. package/dist/schema/plugin_logs.js +0 -29
  97. package/dist/schema/plugin_logs.js.map +0 -1
  98. package/dist/schema/plugin_organization_settings.d.ts +0 -158
  99. package/dist/schema/plugin_organization_settings.d.ts.map +0 -1
  100. package/dist/schema/plugin_organization_settings.js +0 -34
  101. package/dist/schema/plugin_organization_settings.js.map +0 -1
  102. package/dist/schema/plugin_state.d.ts +0 -169
  103. package/dist/schema/plugin_state.d.ts.map +0 -1
  104. package/dist/schema/plugin_state.js +0 -68
  105. package/dist/schema/plugin_state.js.map +0 -1
  106. package/dist/schema/plugin_webhooks.d.ts +0 -239
  107. package/dist/schema/plugin_webhooks.d.ts.map +0 -1
  108. package/dist/schema/plugin_webhooks.js +0 -52
  109. package/dist/schema/plugin_webhooks.js.map +0 -1
  110. package/dist/schema/plugins.d.ts +0 -246
  111. package/dist/schema/plugins.d.ts.map +0 -1
  112. package/dist/schema/plugins.js +0 -31
  113. package/dist/schema/plugins.js.map +0 -1
package/dist/client.js CHANGED
@@ -5,10 +5,28 @@ import { readFile, readdir } from "node:fs/promises";
5
5
  import { resolve } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import postgres from "postgres";
8
+ import { createMigrationManifest } from "./migration-manifest.js";
8
9
  import * as schema from "./schema/index.js";
9
10
  const MIGRATIONS_FOLDER = fileURLToPath(new URL("./migrations", import.meta.url));
10
11
  const DRIZZLE_MIGRATIONS_TABLE = "__drizzle_migrations";
11
12
  const MIGRATIONS_JOURNAL_JSON = fileURLToPath(new URL("./migrations/meta/_journal.json", import.meta.url));
13
+ export const MIGRATION_ADVISORY_LOCK_NAME = "rudder:database-migrations";
14
+ // These hashes belong to previously applied migration revisions that were
15
+ // superseded by the current manifest but remain in existing journals. They are
16
+ // accepted as historical evidence; any other unknown journal hash fails closed.
17
+ const KNOWN_LEGACY_MIGRATION_HISTORY_IDENTIFIERS = new Set([
18
+ "e21cac193575f50627e67946ef9afa44ddd17af24627c8799c5024ce534f89e3",
19
+ "fdf8b69236a60593c52be53ebff89d7f581ddbdbde0227081b11c53b1f6d6578",
20
+ "fba251275287250b3f05a5533e00d3941a3b1c1a526d0073e5d636a2dd868f80",
21
+ "a1fc0446af5ec1640890bb9cf36208eab8dce6687c233029bd54e179613e1af7",
22
+ "31ba03166f91d84423463bf986219371786078bde80241379cab83d53a4df6d5",
23
+ "e5c12f75cba0ee38da04e5175c762a4b3b5e9e9c523ea97f9956448b44e11570",
24
+ "f48a179c17c3ae9b2b419a3f8d4ee8d78de6e4acec3a077fe0d4bcb9a73d57c6",
25
+ "a531d1d8383becb9090492d1b763aeb11a4c2ade4f325a29500511900b29888d",
26
+ "cbf2988159818d54929cda6119f3ca3b6cd6d265c08fb73c6221198ff99d070e",
27
+ "legacy-0100-hash",
28
+ "legacy-conflicting-0100-hash",
29
+ ]);
12
30
  const LEGACY_COLUMN_RENAMES = [
13
31
  { tableName: "agents", from: "adapter_type", to: "agent_runtime_type" },
14
32
  { tableName: "agents", from: "adapter_config", to: "agent_runtime_config" },
@@ -311,15 +329,15 @@ async function tableExists(sql, tableName) {
311
329
  return rows[0]?.exists ?? false;
312
330
  }
313
331
  async function columnExists(sql, tableName, columnName) {
314
- const rows = await sql `
315
- SELECT EXISTS (
316
- SELECT 1
317
- FROM information_schema.columns
318
- WHERE table_schema = 'public'
319
- AND table_name = ${tableName}
320
- AND column_name = ${columnName}
321
- ) AS exists
322
- `;
332
+ const rows = await sql.unsafe(`
333
+ SELECT EXISTS (
334
+ SELECT 1
335
+ FROM information_schema.columns
336
+ WHERE table_schema = 'public'
337
+ AND table_name = ${quoteLiteral(tableName)}
338
+ AND column_name = ${quoteLiteral(columnName)}
339
+ ) AS exists
340
+ `);
323
341
  return rows[0]?.exists ?? false;
324
342
  }
325
343
  async function getColumnMetadata(sql, tableName, columnName) {
@@ -367,20 +385,39 @@ async function constraintExists(sql, constraintName) {
367
385
  `;
368
386
  return rows[0]?.exists ?? false;
369
387
  }
388
+ async function findLegacyColumnRenames(sql) {
389
+ const pending = [];
390
+ for (const rename of LEGACY_COLUMN_RENAMES) {
391
+ const fromExists = await columnExists(sql, rename.tableName, rename.from);
392
+ if (!fromExists)
393
+ continue;
394
+ const toExists = await columnExists(sql, rename.tableName, rename.to);
395
+ if (!toExists)
396
+ pending.push(rename);
397
+ }
398
+ return pending;
399
+ }
400
+ export async function listLegacyColumnRenames(url) {
401
+ const sql = createUtilitySql(url);
402
+ try {
403
+ const pending = await findLegacyColumnRenames(sql);
404
+ return pending.map(({ tableName, from, to }) => `${tableName}.${from}->${to}`);
405
+ }
406
+ finally {
407
+ await sql.end();
408
+ }
409
+ }
370
410
  export async function normalizeLegacyColumnNames(url) {
371
411
  const sql = createUtilitySql(url);
372
412
  const repaired = [];
373
413
  try {
374
- for (const rename of LEGACY_COLUMN_RENAMES) {
375
- const fromExists = await columnExists(sql, rename.tableName, rename.from);
376
- if (!fromExists)
377
- continue;
378
- const toExists = await columnExists(sql, rename.tableName, rename.to);
379
- if (toExists)
380
- continue;
381
- await sql.unsafe(`ALTER TABLE ${quoteIdentifier(rename.tableName)} RENAME COLUMN ${quoteIdentifier(rename.from)} TO ${quoteIdentifier(rename.to)}`);
382
- repaired.push(`${rename.tableName}.${rename.from}->${rename.to}`);
383
- }
414
+ await sql.begin(async (transaction) => {
415
+ const pending = await findLegacyColumnRenames(transaction);
416
+ for (const rename of pending) {
417
+ await transaction.unsafe(`ALTER TABLE ${quoteIdentifier(rename.tableName)} RENAME COLUMN ${quoteIdentifier(rename.from)} TO ${quoteIdentifier(rename.to)}`);
418
+ repaired.push(`${rename.tableName}.${rename.from}->${rename.to}`);
419
+ }
420
+ });
384
421
  }
385
422
  finally {
386
423
  await sql.end();
@@ -653,7 +690,247 @@ export async function inspectMigrations(url) {
653
690
  await sql.end();
654
691
  }
655
692
  }
656
- export async function applyPendingMigrations(url) {
693
+ export async function validatePostMigrationInvariants(url) {
694
+ const issues = [];
695
+ let manifestFingerprint = null;
696
+ let expectedMigrationCount = 0;
697
+ let expectedManifest = null;
698
+ try {
699
+ const manifest = await createMigrationManifest();
700
+ expectedManifest = manifest;
701
+ manifestFingerprint = manifest.fingerprint;
702
+ expectedMigrationCount = manifest.entries.length;
703
+ }
704
+ catch (error) {
705
+ issues.push({
706
+ code: "migration_manifest_invalid",
707
+ message: error instanceof Error ? error.message : String(error),
708
+ });
709
+ }
710
+ const state = await inspectMigrations(url);
711
+ if (state.status !== "upToDate") {
712
+ issues.push({
713
+ code: "migration_state_not_current",
714
+ message: `Database migrations are not current (${state.reason}: ${state.pendingMigrations.join(", ")})`,
715
+ });
716
+ }
717
+ const sql = createUtilitySql(url);
718
+ let migrationJournalSchema = null;
719
+ let migrationJournalEntryCount = 0;
720
+ let organizationsTablePresent = false;
721
+ let organizationsPrimaryKeyValid = false;
722
+ let foreignKeyCount = 0;
723
+ let unvalidatedForeignKeys = [];
724
+ let invalidIndexes = [];
725
+ try {
726
+ migrationJournalSchema = await discoverMigrationTableSchema(sql);
727
+ if (!migrationJournalSchema) {
728
+ issues.push({
729
+ code: "migration_journal_missing",
730
+ message: "Migration journal table is missing",
731
+ });
732
+ }
733
+ else {
734
+ const qualifiedTable = `${quoteIdentifier(migrationJournalSchema)}.${quoteIdentifier(DRIZZLE_MIGRATIONS_TABLE)}`;
735
+ const columnNames = await getMigrationTableColumnNames(sql, migrationJournalSchema);
736
+ const journalRows = await sql.unsafe(`SELECT count(*)::int AS count FROM ${qualifiedTable}`);
737
+ migrationJournalEntryCount = Number(journalRows[0]?.count ?? 0);
738
+ if (!columnNames.has("created_at")
739
+ || (!columnNames.has("hash") && !columnNames.has("name"))) {
740
+ issues.push({
741
+ code: "migration_journal_invalid",
742
+ message: "Migration journal must contain created_at and either hash or name",
743
+ });
744
+ }
745
+ else if (expectedManifest) {
746
+ const selectedColumns = [
747
+ columnNames.has("id") ? "id" : null,
748
+ columnNames.has("hash") ? "hash" : null,
749
+ columnNames.has("name") ? "name" : null,
750
+ "created_at",
751
+ ].filter((column) => column !== null);
752
+ const orderColumn = columnNames.has("id") ? "id" : "created_at";
753
+ const journalEntries = await sql.unsafe(`SELECT ${selectedColumns.map(quoteIdentifier).join(", ")} FROM ${qualifiedTable} ORDER BY ${quoteIdentifier(orderColumn)}`);
754
+ const expectedByHash = new Map(expectedManifest.entries.map((entry) => [entry.sha256, entry]));
755
+ const expectedByName = new Map(expectedManifest.entries.map((entry) => [entry.fileName, entry]));
756
+ const matchedExpectedFiles = new Set();
757
+ if (journalEntries.length < expectedManifest.entries.length) {
758
+ issues.push({
759
+ code: "migration_journal_invalid",
760
+ message: `Migration journal has ${journalEntries.length} entries; expected at least ${expectedManifest.entries.length}`,
761
+ });
762
+ }
763
+ for (let index = 0; index < journalEntries.length; index += 1) {
764
+ const actual = journalEntries[index];
765
+ const actualHash = typeof actual?.hash === "string" ? actual.hash : null;
766
+ const actualName = typeof actual?.name === "string" ? actual.name : null;
767
+ const expectedByActualHash = actualHash ? expectedByHash.get(actualHash) : undefined;
768
+ const expectedByActualName = actualName ? expectedByName.get(actualName) : undefined;
769
+ const matchedExpected = expectedByActualHash ?? expectedByActualName;
770
+ if (matchedExpected) {
771
+ if (matchedExpectedFiles.has(matchedExpected.fileName)) {
772
+ issues.push({
773
+ code: "migration_journal_invalid",
774
+ message: `Migration journal contains duplicate history for ${matchedExpected.fileName}`,
775
+ });
776
+ }
777
+ matchedExpectedFiles.add(matchedExpected.fileName);
778
+ }
779
+ else {
780
+ const isKnownLegacyHash = actualHash !== null
781
+ && KNOWN_LEGACY_MIGRATION_HISTORY_IDENTIFIERS.has(actualHash);
782
+ if (!isKnownLegacyHash) {
783
+ issues.push({
784
+ code: "migration_journal_invalid",
785
+ message: `Migration journal entry ${index} does not match any current migration manifest entry`,
786
+ });
787
+ }
788
+ }
789
+ if ((expectedByActualHash && actualName !== null && actualName !== expectedByActualHash.fileName)
790
+ || (expectedByActualName && actualHash !== null && actualHash !== expectedByActualName.sha256)) {
791
+ issues.push({
792
+ code: "migration_journal_invalid",
793
+ message: `Migration journal entry ${index} does not match its current migration manifest entry`,
794
+ });
795
+ }
796
+ }
797
+ const missingExpectedFiles = expectedManifest.entries
798
+ .map((entry) => entry.fileName)
799
+ .filter((fileName) => !matchedExpectedFiles.has(fileName));
800
+ if (missingExpectedFiles.length > 0) {
801
+ issues.push({
802
+ code: "migration_journal_invalid",
803
+ message: `Migration journal is missing current migration(s): ${missingExpectedFiles.join(", ")}`,
804
+ });
805
+ }
806
+ }
807
+ }
808
+ organizationsTablePresent = await tableExists(sql, "organizations");
809
+ if (!organizationsTablePresent) {
810
+ issues.push({
811
+ code: "organizations_table_missing",
812
+ message: "Core organizations table is missing",
813
+ });
814
+ }
815
+ const primaryKeyRows = await sql.unsafe(`
816
+ SELECT constraint_row.conname AS constraint_name
817
+ FROM pg_constraint constraint_row
818
+ JOIN pg_class table_row ON table_row.oid = constraint_row.conrelid
819
+ JOIN pg_namespace namespace_row ON namespace_row.oid = table_row.relnamespace
820
+ JOIN pg_index index_row ON index_row.indexrelid = constraint_row.conindid
821
+ WHERE namespace_row.nspname = 'public'
822
+ AND table_row.relname = 'organizations'
823
+ AND constraint_row.contype = 'p'
824
+ AND constraint_row.convalidated
825
+ AND index_row.indisvalid
826
+ AND index_row.indisready
827
+ `);
828
+ organizationsPrimaryKeyValid = primaryKeyRows.length === 1;
829
+ if (!organizationsPrimaryKeyValid) {
830
+ issues.push({
831
+ code: "organizations_primary_key_invalid",
832
+ message: "Core organizations primary key is missing or invalid",
833
+ });
834
+ }
835
+ const foreignKeyCountRows = await sql.unsafe(`
836
+ SELECT count(*)::int AS count
837
+ FROM pg_constraint constraint_row
838
+ JOIN pg_class table_row ON table_row.oid = constraint_row.conrelid
839
+ JOIN pg_namespace namespace_row ON namespace_row.oid = table_row.relnamespace
840
+ WHERE namespace_row.nspname = 'public'
841
+ AND constraint_row.contype = 'f'
842
+ `);
843
+ foreignKeyCount = Number(foreignKeyCountRows[0]?.count ?? 0);
844
+ if (foreignKeyCount === 0) {
845
+ issues.push({
846
+ code: "foreign_keys_missing",
847
+ message: "No public foreign key constraints were found",
848
+ });
849
+ }
850
+ const unvalidatedForeignKeyRows = await sql.unsafe(`
851
+ SELECT table_row.relname || '.' || constraint_row.conname AS constraint_name
852
+ FROM pg_constraint constraint_row
853
+ JOIN pg_class table_row ON table_row.oid = constraint_row.conrelid
854
+ JOIN pg_namespace namespace_row ON namespace_row.oid = table_row.relnamespace
855
+ WHERE namespace_row.nspname = 'public'
856
+ AND constraint_row.contype = 'f'
857
+ AND NOT constraint_row.convalidated
858
+ ORDER BY table_row.relname, constraint_row.conname
859
+ `);
860
+ unvalidatedForeignKeys = unvalidatedForeignKeyRows.map((row) => row.constraint_name);
861
+ if (unvalidatedForeignKeys.length > 0) {
862
+ issues.push({
863
+ code: "foreign_keys_not_validated",
864
+ message: `Unvalidated foreign keys: ${unvalidatedForeignKeys.join(", ")}`,
865
+ });
866
+ }
867
+ const invalidIndexRows = await sql.unsafe(`
868
+ SELECT table_row.relname || '.' || index_row.relname AS index_name
869
+ FROM pg_index index_state
870
+ JOIN pg_class index_row ON index_row.oid = index_state.indexrelid
871
+ JOIN pg_class table_row ON table_row.oid = index_state.indrelid
872
+ JOIN pg_namespace namespace_row ON namespace_row.oid = table_row.relnamespace
873
+ WHERE namespace_row.nspname = 'public'
874
+ AND (NOT index_state.indisvalid OR NOT index_state.indisready)
875
+ ORDER BY table_row.relname, index_row.relname
876
+ `);
877
+ invalidIndexes = invalidIndexRows.map((row) => row.index_name);
878
+ if (invalidIndexes.length > 0) {
879
+ issues.push({
880
+ code: "indexes_invalid",
881
+ message: `Invalid indexes: ${invalidIndexes.join(", ")}`,
882
+ });
883
+ }
884
+ }
885
+ finally {
886
+ await sql.end();
887
+ }
888
+ return Object.freeze({
889
+ valid: issues.length === 0,
890
+ manifestFingerprint,
891
+ expectedMigrationCount,
892
+ migrationJournalSchema,
893
+ migrationJournalEntryCount,
894
+ organizationsTablePresent,
895
+ organizationsPrimaryKeyValid,
896
+ foreignKeyCount,
897
+ unvalidatedForeignKeys: Object.freeze(unvalidatedForeignKeys),
898
+ invalidIndexes: Object.freeze(invalidIndexes),
899
+ issues: Object.freeze(issues),
900
+ });
901
+ }
902
+ export async function assertPostMigrationInvariants(url) {
903
+ const report = await validatePostMigrationInvariants(url);
904
+ if (!report.valid) {
905
+ throw new Error(`Post-migration database invariants failed: ${report.issues.map((issue) => issue.message).join("; ")}`);
906
+ }
907
+ }
908
+ export async function withMigrationAdvisoryLock(url, action) {
909
+ const lockSql = createUtilitySql(url);
910
+ try {
911
+ await lockSql `
912
+ SELECT pg_advisory_lock(
913
+ hashtext(current_database()),
914
+ hashtext(${MIGRATION_ADVISORY_LOCK_NAME})
915
+ )
916
+ `;
917
+ return await action();
918
+ }
919
+ finally {
920
+ try {
921
+ await lockSql `
922
+ SELECT pg_advisory_unlock(
923
+ hashtext(current_database()),
924
+ hashtext(${MIGRATION_ADVISORY_LOCK_NAME})
925
+ )
926
+ `;
927
+ }
928
+ finally {
929
+ await lockSql.end();
930
+ }
931
+ }
932
+ }
933
+ async function applyPendingMigrationsWithoutLock(url) {
657
934
  await normalizeLegacyColumnNames(url);
658
935
  const initialState = await inspectMigrations(url);
659
936
  if (initialState.status === "upToDate")
@@ -715,6 +992,18 @@ export async function applyPendingMigrations(url) {
715
992
  throw new Error(`Failed to apply pending migrations: ${finalState.pendingMigrations.join(", ")}`);
716
993
  }
717
994
  }
995
+ export async function applyPendingMigrations(url, options = {}) {
996
+ const apply = async () => {
997
+ await createMigrationManifest();
998
+ await applyPendingMigrationsWithoutLock(url);
999
+ await assertPostMigrationInvariants(url);
1000
+ };
1001
+ if (options.advisoryLockHeld) {
1002
+ await apply();
1003
+ return;
1004
+ }
1005
+ await withMigrationAdvisoryLock(url, apply);
1006
+ }
718
1007
  export async function migratePostgresIfEmpty(url) {
719
1008
  const sql = createUtilitySql(url);
720
1009
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}