@paperclipai/db 0.3.0 → 0.3.1-canary.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.
Files changed (56) hide show
  1. package/dist/backup-lib.d.ts +9 -0
  2. package/dist/backup-lib.d.ts.map +1 -1
  3. package/dist/backup-lib.js +230 -62
  4. package/dist/backup-lib.js.map +1 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +9 -6
  7. package/dist/client.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/migrate.js +21 -15
  13. package/dist/migrate.js.map +1 -1
  14. package/dist/migration-runtime.d.ts +7 -0
  15. package/dist/migration-runtime.d.ts.map +1 -0
  16. package/dist/migration-runtime.js +102 -0
  17. package/dist/migration-runtime.js.map +1 -0
  18. package/dist/migration-status.d.ts +2 -0
  19. package/dist/migration-status.d.ts.map +1 -0
  20. package/dist/migration-status.js +37 -0
  21. package/dist/migration-status.js.map +1 -0
  22. package/dist/migrations/0026_lying_pete_wisdom.sql +39 -0
  23. package/dist/migrations/0027_tranquil_tenebrous.sql +2 -0
  24. package/dist/migrations/meta/0026_snapshot.json +6193 -0
  25. package/dist/migrations/meta/0027_snapshot.json +6205 -0
  26. package/dist/migrations/meta/_journal.json +14 -0
  27. package/dist/migrations/migrations/0026_lying_pete_wisdom.sql +39 -0
  28. package/dist/migrations/migrations/0027_tranquil_tenebrous.sql +2 -0
  29. package/dist/migrations/migrations/meta/0026_snapshot.json +6193 -0
  30. package/dist/migrations/migrations/meta/0027_snapshot.json +6205 -0
  31. package/dist/migrations/migrations/meta/_journal.json +14 -0
  32. package/dist/runtime-config.d.ts +16 -0
  33. package/dist/runtime-config.d.ts.map +1 -0
  34. package/dist/runtime-config.js +197 -0
  35. package/dist/runtime-config.js.map +1 -0
  36. package/dist/runtime-config.test.d.ts +2 -0
  37. package/dist/runtime-config.test.d.ts.map +1 -0
  38. package/dist/runtime-config.test.js +93 -0
  39. package/dist/runtime-config.test.js.map +1 -0
  40. package/dist/schema/index.d.ts +1 -0
  41. package/dist/schema/index.d.ts.map +1 -1
  42. package/dist/schema/index.js +1 -0
  43. package/dist/schema/index.js.map +1 -1
  44. package/dist/schema/issues.d.ts +19 -0
  45. package/dist/schema/issues.d.ts.map +1 -1
  46. package/dist/schema/issues.js +1 -0
  47. package/dist/schema/issues.js.map +1 -1
  48. package/dist/schema/projects.d.ts +19 -0
  49. package/dist/schema/projects.d.ts.map +1 -1
  50. package/dist/schema/projects.js +2 -1
  51. package/dist/schema/projects.js.map +1 -1
  52. package/dist/schema/workspace_runtime_services.d.ts +452 -0
  53. package/dist/schema/workspace_runtime_services.d.ts.map +1 -0
  54. package/dist/schema/workspace_runtime_services.js +41 -0
  55. package/dist/schema/workspace_runtime_services.js.map +1 -0
  56. package/package.json +2 -2
@@ -4,12 +4,21 @@ export type RunDatabaseBackupOptions = {
4
4
  retentionDays: number;
5
5
  filenamePrefix?: string;
6
6
  connectTimeoutSeconds?: number;
7
+ includeMigrationJournal?: boolean;
8
+ excludeTables?: string[];
9
+ nullifyColumns?: Record<string, string[]>;
7
10
  };
8
11
  export type RunDatabaseBackupResult = {
9
12
  backupFile: string;
10
13
  sizeBytes: number;
11
14
  prunedCount: number;
12
15
  };
16
+ export type RunDatabaseRestoreOptions = {
17
+ connectionString: string;
18
+ backupFile: string;
19
+ connectTimeoutSeconds?: number;
20
+ };
13
21
  export declare function runDatabaseBackup(opts: RunDatabaseBackupOptions): Promise<RunDatabaseBackupResult>;
22
+ export declare function runDatabaseRestore(opts: RunDatabaseRestoreOptions): Promise<void>;
14
23
  export declare function formatDatabaseBackupResult(result: RunDatabaseBackupResult): string;
15
24
  //# sourceMappingURL=backup-lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backup-lib.d.ts","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAgCF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAqRxG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAIlF"}
1
+ {"version":3,"file":"backup-lib.d.ts","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAqHF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA0XxG;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BvF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAIlF"}
@@ -1,7 +1,23 @@
1
1
  import { existsSync, mkdirSync, readdirSync, statSync, unlinkSync } from "node:fs";
2
- import { writeFile } from "node:fs/promises";
3
- import { resolve } from "node:path";
2
+ import { readFile, writeFile } from "node:fs/promises";
3
+ import { basename, resolve } from "node:path";
4
4
  import postgres from "postgres";
5
+ const DRIZZLE_SCHEMA = "drizzle";
6
+ const DRIZZLE_MIGRATIONS_TABLE = "__drizzle_migrations";
7
+ const STATEMENT_BREAKPOINT = "-- paperclip statement breakpoint 69f6f3f1-42fd-46a6-bf17-d1d85f8f3900";
8
+ function sanitizeRestoreErrorMessage(error) {
9
+ if (error && typeof error === "object") {
10
+ const record = error;
11
+ const firstLine = typeof record.message === "string"
12
+ ? record.message.split(/\r?\n/, 1)[0]?.trim()
13
+ : "";
14
+ const detail = typeof record.detail === "string" ? record.detail.trim() : "";
15
+ const severity = typeof record.severity === "string" ? record.severity.trim() : "";
16
+ const message = firstLine || detail || (error instanceof Error ? error.message : String(error));
17
+ return severity ? `${severity}: ${message}` : message;
18
+ }
19
+ return error instanceof Error ? error.message : String(error);
20
+ }
5
21
  function timestamp(date = new Date()) {
6
22
  const pad = (n) => String(n).padStart(2, "0");
7
23
  return `${date.getFullYear()}${pad(date.getMonth() + 1)}${pad(date.getDate())}-${pad(date.getHours())}${pad(date.getMinutes())}${pad(date.getSeconds())}`;
@@ -31,20 +47,83 @@ function formatBackupSize(sizeBytes) {
31
47
  return `${(sizeBytes / 1024).toFixed(1)}K`;
32
48
  return `${(sizeBytes / (1024 * 1024)).toFixed(1)}M`;
33
49
  }
50
+ function formatSqlLiteral(value) {
51
+ const sanitized = value.replace(/\u0000/g, "");
52
+ let tag = "$paperclip$";
53
+ while (sanitized.includes(tag)) {
54
+ tag = `$paperclip_${Math.random().toString(36).slice(2, 8)}$`;
55
+ }
56
+ return `${tag}${sanitized}${tag}`;
57
+ }
58
+ function normalizeTableNameSet(values) {
59
+ return new Set((values ?? [])
60
+ .map((value) => value.trim())
61
+ .filter((value) => value.length > 0));
62
+ }
63
+ function normalizeNullifyColumnMap(values) {
64
+ const out = new Map();
65
+ if (!values)
66
+ return out;
67
+ for (const [tableName, columns] of Object.entries(values)) {
68
+ const normalizedTable = tableName.trim();
69
+ if (normalizedTable.length === 0)
70
+ continue;
71
+ const normalizedColumns = new Set(columns
72
+ .map((column) => column.trim())
73
+ .filter((column) => column.length > 0));
74
+ if (normalizedColumns.size > 0) {
75
+ out.set(normalizedTable, normalizedColumns);
76
+ }
77
+ }
78
+ return out;
79
+ }
80
+ function quoteIdentifier(value) {
81
+ return `"${value.replaceAll("\"", "\"\"")}"`;
82
+ }
83
+ function quoteQualifiedName(schemaName, objectName) {
84
+ return `${quoteIdentifier(schemaName)}.${quoteIdentifier(objectName)}`;
85
+ }
86
+ function tableKey(schemaName, tableName) {
87
+ return `${schemaName}.${tableName}`;
88
+ }
34
89
  export async function runDatabaseBackup(opts) {
35
90
  const filenamePrefix = opts.filenamePrefix ?? "paperclip";
36
91
  const retentionDays = Math.max(1, Math.trunc(opts.retentionDays));
37
92
  const connectTimeout = Math.max(1, Math.trunc(opts.connectTimeoutSeconds ?? 5));
93
+ const includeMigrationJournal = opts.includeMigrationJournal === true;
94
+ const excludedTableNames = normalizeTableNameSet(opts.excludeTables);
95
+ const nullifiedColumnsByTable = normalizeNullifyColumnMap(opts.nullifyColumns);
38
96
  const sql = postgres(opts.connectionString, { max: 1, connect_timeout: connectTimeout });
39
97
  try {
40
98
  await sql `SELECT 1`;
41
99
  const lines = [];
42
100
  const emit = (line) => lines.push(line);
101
+ const emitStatement = (statement) => {
102
+ emit(statement);
103
+ emit(STATEMENT_BREAKPOINT);
104
+ };
105
+ const emitStatementBoundary = () => {
106
+ emit(STATEMENT_BREAKPOINT);
107
+ };
43
108
  emit("-- Paperclip database backup");
44
109
  emit(`-- Created: ${new Date().toISOString()}`);
45
110
  emit("");
46
- emit("BEGIN;");
111
+ emitStatement("BEGIN;");
112
+ emitStatement("SET LOCAL session_replication_role = replica;");
113
+ emitStatement("SET LOCAL client_min_messages = warning;");
47
114
  emit("");
115
+ const allTables = await sql `
116
+ SELECT table_schema AS schema_name, table_name AS tablename
117
+ FROM information_schema.tables
118
+ WHERE table_type = 'BASE TABLE'
119
+ AND (
120
+ table_schema = 'public'
121
+ OR (${includeMigrationJournal}::boolean AND table_schema = ${DRIZZLE_SCHEMA} AND table_name = ${DRIZZLE_MIGRATIONS_TABLE})
122
+ )
123
+ ORDER BY table_schema, table_name
124
+ `;
125
+ const tables = allTables;
126
+ const includedTableNames = new Set(tables.map(({ schema_name, tablename }) => tableKey(schema_name, tablename)));
48
127
  // Get all enums
49
128
  const enums = await sql `
50
129
  SELECT t.typname, array_agg(e.enumlabel ORDER BY e.enumsortorder) AS labels
@@ -57,31 +136,69 @@ export async function runDatabaseBackup(opts) {
57
136
  `;
58
137
  for (const e of enums) {
59
138
  const labels = e.labels.map((l) => `'${l.replace(/'/g, "''")}'`).join(", ");
60
- emit(`CREATE TYPE "public"."${e.typname}" AS ENUM (${labels});`);
139
+ emitStatement(`CREATE TYPE "public"."${e.typname}" AS ENUM (${labels});`);
61
140
  }
62
141
  if (enums.length > 0)
63
142
  emit("");
64
- // Get tables in dependency order (referenced tables first)
65
- const tables = await sql `
66
- SELECT c.relname AS tablename
67
- FROM pg_class c
68
- JOIN pg_namespace n ON n.oid = c.relnamespace
69
- WHERE n.nspname = 'public'
70
- AND c.relkind = 'r'
71
- AND c.relname != '__drizzle_migrations'
72
- ORDER BY c.relname
143
+ const allSequences = await sql `
144
+ SELECT
145
+ s.sequence_schema,
146
+ s.sequence_name,
147
+ s.data_type,
148
+ s.start_value,
149
+ s.minimum_value,
150
+ s.maximum_value,
151
+ s.increment,
152
+ s.cycle_option,
153
+ tblns.nspname AS owner_schema,
154
+ tbl.relname AS owner_table,
155
+ attr.attname AS owner_column
156
+ FROM information_schema.sequences s
157
+ JOIN pg_class seq ON seq.relname = s.sequence_name
158
+ JOIN pg_namespace n ON n.oid = seq.relnamespace AND n.nspname = s.sequence_schema
159
+ LEFT JOIN pg_depend dep ON dep.objid = seq.oid AND dep.deptype = 'a'
160
+ LEFT JOIN pg_class tbl ON tbl.oid = dep.refobjid
161
+ LEFT JOIN pg_namespace tblns ON tblns.oid = tbl.relnamespace
162
+ LEFT JOIN pg_attribute attr ON attr.attrelid = tbl.oid AND attr.attnum = dep.refobjsubid
163
+ WHERE s.sequence_schema = 'public'
164
+ OR (${includeMigrationJournal}::boolean AND s.sequence_schema = ${DRIZZLE_SCHEMA})
165
+ ORDER BY s.sequence_schema, s.sequence_name
73
166
  `;
167
+ const sequences = allSequences.filter((seq) => !seq.owner_table || includedTableNames.has(tableKey(seq.owner_schema ?? "public", seq.owner_table)));
168
+ const schemas = new Set();
169
+ for (const table of tables)
170
+ schemas.add(table.schema_name);
171
+ for (const seq of sequences)
172
+ schemas.add(seq.sequence_schema);
173
+ const extraSchemas = [...schemas].filter((schemaName) => schemaName !== "public");
174
+ if (extraSchemas.length > 0) {
175
+ emit("-- Schemas");
176
+ for (const schemaName of extraSchemas) {
177
+ emitStatement(`CREATE SCHEMA IF NOT EXISTS ${quoteIdentifier(schemaName)};`);
178
+ }
179
+ emit("");
180
+ }
181
+ if (sequences.length > 0) {
182
+ emit("-- Sequences");
183
+ for (const seq of sequences) {
184
+ const qualifiedSequenceName = quoteQualifiedName(seq.sequence_schema, seq.sequence_name);
185
+ emitStatement(`DROP SEQUENCE IF EXISTS ${qualifiedSequenceName} CASCADE;`);
186
+ emitStatement(`CREATE SEQUENCE ${qualifiedSequenceName} AS ${seq.data_type} INCREMENT BY ${seq.increment} MINVALUE ${seq.minimum_value} MAXVALUE ${seq.maximum_value} START WITH ${seq.start_value}${seq.cycle_option === "YES" ? " CYCLE" : " NO CYCLE"};`);
187
+ }
188
+ emit("");
189
+ }
74
190
  // Get full CREATE TABLE DDL via column info
75
- for (const { tablename } of tables) {
191
+ for (const { schema_name, tablename } of tables) {
192
+ const qualifiedTableName = quoteQualifiedName(schema_name, tablename);
76
193
  const columns = await sql `
77
194
  SELECT column_name, data_type, udt_name, is_nullable, column_default,
78
195
  character_maximum_length, numeric_precision, numeric_scale
79
196
  FROM information_schema.columns
80
- WHERE table_schema = 'public' AND table_name = ${tablename}
197
+ WHERE table_schema = ${schema_name} AND table_name = ${tablename}
81
198
  ORDER BY ordinal_position
82
199
  `;
83
- emit(`-- Table: ${tablename}`);
84
- emit(`DROP TABLE IF EXISTS "${tablename}" CASCADE;`);
200
+ emit(`-- Table: ${schema_name}.${tablename}`);
201
+ emitStatement(`DROP TABLE IF EXISTS ${qualifiedTableName} CASCADE;`);
85
202
  const colDefs = [];
86
203
  for (const col of columns) {
87
204
  let typeStr;
@@ -120,105 +237,134 @@ export async function runDatabaseBackup(opts) {
120
237
  JOIN pg_class t ON t.oid = c.conrelid
121
238
  JOIN pg_namespace n ON n.oid = t.relnamespace
122
239
  JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(c.conkey)
123
- WHERE n.nspname = 'public' AND t.relname = ${tablename} AND c.contype = 'p'
240
+ WHERE n.nspname = ${schema_name} AND t.relname = ${tablename} AND c.contype = 'p'
124
241
  GROUP BY c.conname
125
242
  `;
126
243
  for (const p of pk) {
127
244
  const cols = p.column_names.map((c) => `"${c}"`).join(", ");
128
245
  colDefs.push(` CONSTRAINT "${p.constraint_name}" PRIMARY KEY (${cols})`);
129
246
  }
130
- emit(`CREATE TABLE "${tablename}" (`);
247
+ emit(`CREATE TABLE ${qualifiedTableName} (`);
131
248
  emit(colDefs.join(",\n"));
132
249
  emit(");");
250
+ emitStatementBoundary();
251
+ emit("");
252
+ }
253
+ const ownedSequences = sequences.filter((seq) => seq.owner_table && seq.owner_column);
254
+ if (ownedSequences.length > 0) {
255
+ emit("-- Sequence ownership");
256
+ for (const seq of ownedSequences) {
257
+ emitStatement(`ALTER SEQUENCE ${quoteQualifiedName(seq.sequence_schema, seq.sequence_name)} OWNED BY ${quoteQualifiedName(seq.owner_schema ?? "public", seq.owner_table)}.${quoteIdentifier(seq.owner_column)};`);
258
+ }
133
259
  emit("");
134
260
  }
135
261
  // Foreign keys (after all tables created)
136
- const fks = await sql `
262
+ const allForeignKeys = await sql `
137
263
  SELECT
138
264
  c.conname AS constraint_name,
265
+ srcn.nspname AS source_schema,
139
266
  src.relname AS source_table,
140
267
  array_agg(sa.attname ORDER BY array_position(c.conkey, sa.attnum)) AS source_columns,
268
+ tgtn.nspname AS target_schema,
141
269
  tgt.relname AS target_table,
142
270
  array_agg(ta.attname ORDER BY array_position(c.confkey, ta.attnum)) AS target_columns,
143
271
  CASE c.confupdtype WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END AS update_rule,
144
272
  CASE c.confdeltype WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END AS delete_rule
145
273
  FROM pg_constraint c
146
274
  JOIN pg_class src ON src.oid = c.conrelid
275
+ JOIN pg_namespace srcn ON srcn.oid = src.relnamespace
147
276
  JOIN pg_class tgt ON tgt.oid = c.confrelid
148
- JOIN pg_namespace n ON n.oid = src.relnamespace
277
+ JOIN pg_namespace tgtn ON tgtn.oid = tgt.relnamespace
149
278
  JOIN pg_attribute sa ON sa.attrelid = src.oid AND sa.attnum = ANY(c.conkey)
150
279
  JOIN pg_attribute ta ON ta.attrelid = tgt.oid AND ta.attnum = ANY(c.confkey)
151
- WHERE c.contype = 'f' AND n.nspname = 'public'
152
- GROUP BY c.conname, src.relname, tgt.relname, c.confupdtype, c.confdeltype
153
- ORDER BY src.relname, c.conname
280
+ WHERE c.contype = 'f' AND (
281
+ srcn.nspname = 'public'
282
+ OR (${includeMigrationJournal}::boolean AND srcn.nspname = ${DRIZZLE_SCHEMA})
283
+ )
284
+ GROUP BY c.conname, srcn.nspname, src.relname, tgtn.nspname, tgt.relname, c.confupdtype, c.confdeltype
285
+ ORDER BY srcn.nspname, src.relname, c.conname
154
286
  `;
287
+ const fks = allForeignKeys.filter((fk) => includedTableNames.has(tableKey(fk.source_schema, fk.source_table))
288
+ && includedTableNames.has(tableKey(fk.target_schema, fk.target_table)));
155
289
  if (fks.length > 0) {
156
290
  emit("-- Foreign keys");
157
291
  for (const fk of fks) {
158
292
  const srcCols = fk.source_columns.map((c) => `"${c}"`).join(", ");
159
293
  const tgtCols = fk.target_columns.map((c) => `"${c}"`).join(", ");
160
- emit(`ALTER TABLE "${fk.source_table}" ADD CONSTRAINT "${fk.constraint_name}" FOREIGN KEY (${srcCols}) REFERENCES "${fk.target_table}" (${tgtCols}) ON UPDATE ${fk.update_rule} ON DELETE ${fk.delete_rule};`);
294
+ emitStatement(`ALTER TABLE ${quoteQualifiedName(fk.source_schema, fk.source_table)} ADD CONSTRAINT "${fk.constraint_name}" FOREIGN KEY (${srcCols}) REFERENCES ${quoteQualifiedName(fk.target_schema, fk.target_table)} (${tgtCols}) ON UPDATE ${fk.update_rule} ON DELETE ${fk.delete_rule};`);
161
295
  }
162
296
  emit("");
163
297
  }
164
298
  // Unique constraints
165
- const uniques = await sql `
299
+ const allUniqueConstraints = await sql `
166
300
  SELECT c.conname AS constraint_name,
301
+ n.nspname AS schema_name,
167
302
  t.relname AS tablename,
168
303
  array_agg(a.attname ORDER BY array_position(c.conkey, a.attnum)) AS column_names
169
304
  FROM pg_constraint c
170
305
  JOIN pg_class t ON t.oid = c.conrelid
171
306
  JOIN pg_namespace n ON n.oid = t.relnamespace
172
307
  JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(c.conkey)
173
- WHERE n.nspname = 'public' AND c.contype = 'u'
174
- GROUP BY c.conname, t.relname
175
- ORDER BY t.relname, c.conname
308
+ WHERE c.contype = 'u' AND (
309
+ n.nspname = 'public'
310
+ OR (${includeMigrationJournal}::boolean AND n.nspname = ${DRIZZLE_SCHEMA})
311
+ )
312
+ GROUP BY c.conname, n.nspname, t.relname
313
+ ORDER BY n.nspname, t.relname, c.conname
176
314
  `;
315
+ const uniques = allUniqueConstraints.filter((entry) => includedTableNames.has(tableKey(entry.schema_name, entry.tablename)));
177
316
  if (uniques.length > 0) {
178
317
  emit("-- Unique constraints");
179
318
  for (const u of uniques) {
180
319
  const cols = u.column_names.map((c) => `"${c}"`).join(", ");
181
- emit(`ALTER TABLE "${u.tablename}" ADD CONSTRAINT "${u.constraint_name}" UNIQUE (${cols});`);
320
+ emitStatement(`ALTER TABLE ${quoteQualifiedName(u.schema_name, u.tablename)} ADD CONSTRAINT "${u.constraint_name}" UNIQUE (${cols});`);
182
321
  }
183
322
  emit("");
184
323
  }
185
324
  // Indexes (non-primary, non-unique-constraint)
186
- const indexes = await sql `
187
- SELECT indexdef
325
+ const allIndexes = await sql `
326
+ SELECT schemaname AS schema_name, tablename, indexdef
188
327
  FROM pg_indexes
189
- WHERE schemaname = 'public'
328
+ WHERE (
329
+ schemaname = 'public'
330
+ OR (${includeMigrationJournal}::boolean AND schemaname = ${DRIZZLE_SCHEMA})
331
+ )
190
332
  AND indexname NOT IN (
191
- SELECT conname FROM pg_constraint
192
- WHERE connamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public')
333
+ SELECT conname FROM pg_constraint c
334
+ JOIN pg_namespace n ON n.oid = c.connamespace
335
+ WHERE n.nspname = pg_indexes.schemaname
193
336
  )
194
- ORDER BY tablename, indexname
337
+ ORDER BY schemaname, tablename, indexname
195
338
  `;
339
+ const indexes = allIndexes.filter((entry) => includedTableNames.has(tableKey(entry.schema_name, entry.tablename)));
196
340
  if (indexes.length > 0) {
197
341
  emit("-- Indexes");
198
342
  for (const idx of indexes) {
199
- emit(`${idx.indexdef};`);
343
+ emitStatement(`${idx.indexdef};`);
200
344
  }
201
345
  emit("");
202
346
  }
203
347
  // Dump data for each table
204
- for (const { tablename } of tables) {
205
- const count = await sql `
206
- SELECT count(*)::int AS n FROM ${sql(tablename)}
207
- `;
208
- if ((count[0]?.n ?? 0) === 0)
348
+ for (const { schema_name, tablename } of tables) {
349
+ const qualifiedTableName = quoteQualifiedName(schema_name, tablename);
350
+ const count = await sql.unsafe(`SELECT count(*)::int AS n FROM ${qualifiedTableName}`);
351
+ if (excludedTableNames.has(tablename) || (count[0]?.n ?? 0) === 0)
209
352
  continue;
210
353
  // Get column info for this table
211
354
  const cols = await sql `
212
355
  SELECT column_name, data_type
213
356
  FROM information_schema.columns
214
- WHERE table_schema = 'public' AND table_name = ${tablename}
357
+ WHERE table_schema = ${schema_name} AND table_name = ${tablename}
215
358
  ORDER BY ordinal_position
216
359
  `;
217
360
  const colNames = cols.map((c) => `"${c.column_name}"`).join(", ");
218
- emit(`-- Data for: ${tablename} (${count[0].n} rows)`);
219
- const rows = await sql `SELECT * FROM ${sql(tablename)}`.values();
361
+ emit(`-- Data for: ${schema_name}.${tablename} (${count[0].n} rows)`);
362
+ const rows = await sql.unsafe(`SELECT * FROM ${qualifiedTableName}`).values();
363
+ const nullifiedColumns = nullifiedColumnsByTable.get(tablename) ?? new Set();
220
364
  for (const row of rows) {
221
- const values = row.map((val) => {
365
+ const values = row.map((rawValue, index) => {
366
+ const columnName = cols[index]?.column_name;
367
+ const val = columnName && nullifiedColumns.has(columnName) ? null : rawValue;
222
368
  if (val === null || val === undefined)
223
369
  return "NULL";
224
370
  if (typeof val === "boolean")
@@ -226,35 +372,30 @@ export async function runDatabaseBackup(opts) {
226
372
  if (typeof val === "number")
227
373
  return String(val);
228
374
  if (val instanceof Date)
229
- return `'${val.toISOString()}'`;
375
+ return formatSqlLiteral(val.toISOString());
230
376
  if (typeof val === "object")
231
- return `'${JSON.stringify(val).replace(/'/g, "''")}'`;
232
- return `'${String(val).replace(/'/g, "''")}'`;
377
+ return formatSqlLiteral(JSON.stringify(val));
378
+ return formatSqlLiteral(String(val));
233
379
  });
234
- emit(`INSERT INTO "${tablename}" (${colNames}) VALUES (${values.join(", ")});`);
380
+ emitStatement(`INSERT INTO ${qualifiedTableName} (${colNames}) VALUES (${values.join(", ")});`);
235
381
  }
236
382
  emit("");
237
383
  }
238
384
  // Sequence values
239
- const sequences = await sql `
240
- SELECT sequence_name
241
- FROM information_schema.sequences
242
- WHERE sequence_schema = 'public'
243
- ORDER BY sequence_name
244
- `;
245
385
  if (sequences.length > 0) {
246
386
  emit("-- Sequence values");
247
387
  for (const seq of sequences) {
248
- const val = await sql `
249
- SELECT last_value::text FROM ${sql(seq.sequence_name)}
250
- `;
251
- if (val[0]) {
252
- emit(`SELECT setval('"${seq.sequence_name}"', ${val[0].last_value});`);
388
+ const qualifiedSequenceName = quoteQualifiedName(seq.sequence_schema, seq.sequence_name);
389
+ const val = await sql.unsafe(`SELECT last_value::text, is_called FROM ${qualifiedSequenceName}`);
390
+ const skipSequenceValue = seq.owner_table !== null
391
+ && excludedTableNames.has(seq.owner_table);
392
+ if (val[0] && !skipSequenceValue) {
393
+ emitStatement(`SELECT setval('${qualifiedSequenceName.replaceAll("'", "''")}', ${val[0].last_value}, ${val[0].is_called ? "true" : "false"});`);
253
394
  }
254
395
  }
255
396
  emit("");
256
397
  }
257
- emit("COMMIT;");
398
+ emitStatement("COMMIT;");
258
399
  emit("");
259
400
  // Write the backup file
260
401
  mkdirSync(opts.backupDir, { recursive: true });
@@ -272,6 +413,33 @@ export async function runDatabaseBackup(opts) {
272
413
  await sql.end();
273
414
  }
274
415
  }
416
+ export async function runDatabaseRestore(opts) {
417
+ const connectTimeout = Math.max(1, Math.trunc(opts.connectTimeoutSeconds ?? 5));
418
+ const sql = postgres(opts.connectionString, { max: 1, connect_timeout: connectTimeout });
419
+ try {
420
+ await sql `SELECT 1`;
421
+ const contents = await readFile(opts.backupFile, "utf8");
422
+ const statements = contents
423
+ .split(STATEMENT_BREAKPOINT)
424
+ .map((statement) => statement.trim())
425
+ .filter((statement) => statement.length > 0);
426
+ for (const statement of statements) {
427
+ await sql.unsafe(statement).execute();
428
+ }
429
+ }
430
+ catch (error) {
431
+ const statementPreview = typeof error === "object" && error !== null && typeof error.query === "string"
432
+ ? String(error.query)
433
+ .split(/\r?\n/)
434
+ .map((line) => line.trim())
435
+ .find((line) => line.length > 0 && !line.startsWith("--"))
436
+ : null;
437
+ throw new Error(`Failed to restore ${basename(opts.backupFile)}: ${sanitizeRestoreErrorMessage(error)}${statementPreview ? ` [statement: ${statementPreview.slice(0, 120)}]` : ""}`);
438
+ }
439
+ finally {
440
+ await sql.end();
441
+ }
442
+ }
275
443
  export function formatDatabaseBackupResult(result) {
276
444
  const size = formatBackupSize(result.sizeBytes);
277
445
  const pruned = result.prunedCount > 0 ? `; pruned ${result.prunedCount} old backup(s)` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"backup-lib.js","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup-lib.js","sourceRoot":"","sources":["../src/backup-lib.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AA0B5C,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACtG;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,+BAA+B,GAAG,mCAAmC,GAAG,oBAAoB,CAAC;CACtG,CAAC;AAEN,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM;;EAGnC;AA+ZD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,+BAA+B,CAAC,CA2F1C;AAqBD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D5E;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCvE;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,CAAC,CAAA;CAAE,GAC9D;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,gCAAgC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8B3F;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAiB/B;AAED,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AA8B5C,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACtG;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,+BAA+B,GAAG,mCAAmC,GAAG,oBAAoB,CAAC;CACtG,CAAC;AAEN,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM;;EAGnC;AA+ZD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,+BAA+B,CAAC,CA2F1C;AAqBD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0D5E;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCvE;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,CAAC,CAAA;CAAE,GAC9D;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,gCAAgC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8B3F;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAiB/B;AAED,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC"}
package/dist/client.js CHANGED
@@ -8,6 +8,9 @@ import * as schema from "./schema/index.js";
8
8
  const MIGRATIONS_FOLDER = fileURLToPath(new URL("./migrations", import.meta.url));
9
9
  const DRIZZLE_MIGRATIONS_TABLE = "__drizzle_migrations";
10
10
  const MIGRATIONS_JOURNAL_JSON = fileURLToPath(new URL("./migrations/meta/_journal.json", import.meta.url));
11
+ function createUtilitySql(url) {
12
+ return postgres(url, { max: 1, onnotice: () => { } });
13
+ }
11
14
  function isSafeIdentifier(value) {
12
15
  return /^[A-Za-z_][A-Za-z0-9_]*$/.test(value);
13
16
  }
@@ -160,7 +163,7 @@ async function applyPendingMigrationsManually(url, pendingMigrations) {
160
163
  const orderedPendingMigrations = await orderMigrationsByJournal(pendingMigrations);
161
164
  const journalEntries = await listJournalMigrationEntries();
162
165
  const folderMillisByFileName = new Map(journalEntries.map((entry) => [entry.fileName, normalizeFolderMillis(entry.folderMillis)]));
163
- const sql = postgres(url, { max: 1 });
166
+ const sql = createUtilitySql(url);
164
167
  try {
165
168
  const { migrationTableSchema, columnNames } = await ensureMigrationJournalTable(sql);
166
169
  const qualifiedTable = `${quoteIdentifier(migrationTableSchema)}.${quoteIdentifier(DRIZZLE_MIGRATIONS_TABLE)}`;
@@ -331,7 +334,7 @@ export async function reconcilePendingMigrationHistory(url) {
331
334
  if (state.status !== "needsMigrations" || state.reason !== "pending-migrations") {
332
335
  return { repairedMigrations: [], remainingMigrations: [] };
333
336
  }
334
- const sql = postgres(url, { max: 1 });
337
+ const sql = createUtilitySql(url);
335
338
  const repairedMigrations = [];
336
339
  try {
337
340
  const journalEntries = await listJournalMigrationEntries();
@@ -416,7 +419,7 @@ async function discoverMigrationTableSchema(sql) {
416
419
  return rows[0]?.schemaName ?? null;
417
420
  }
418
421
  export async function inspectMigrations(url) {
419
- const sql = postgres(url, { max: 1 });
422
+ const sql = createUtilitySql(url);
420
423
  try {
421
424
  const availableMigrations = await listMigrationFiles();
422
425
  const tableCountResult = await sql `
@@ -474,7 +477,7 @@ export async function applyPendingMigrations(url) {
474
477
  const initialState = await inspectMigrations(url);
475
478
  if (initialState.status === "upToDate")
476
479
  return;
477
- const sql = postgres(url, { max: 1 });
480
+ const sql = createUtilitySql(url);
478
481
  try {
479
482
  const db = drizzlePg(sql);
480
483
  await migratePg(db, { migrationsFolder: MIGRATIONS_FOLDER });
@@ -501,7 +504,7 @@ export async function applyPendingMigrations(url) {
501
504
  }
502
505
  }
503
506
  export async function migratePostgresIfEmpty(url) {
504
- const sql = postgres(url, { max: 1 });
507
+ const sql = createUtilitySql(url);
505
508
  try {
506
509
  const migrationTableSchema = await discoverMigrationTableSchema(sql);
507
510
  const tableCountResult = await sql `
@@ -529,7 +532,7 @@ export async function ensurePostgresDatabase(url, databaseName) {
529
532
  if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(databaseName)) {
530
533
  throw new Error(`Unsafe database name: ${databaseName}`);
531
534
  }
532
- const sql = postgres(url, { max: 1 });
535
+ const sql = createUtilitySql(url);
533
536
  try {
534
537
  const existing = await sql `
535
538
  select 1 as one from pg_database where datname = ${databaseName} limit 1