@tejasanik/postgres-mcp-server 1.6.2 → 1.7.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/README.md +64 -4
- package/dist/__tests__/server-tools.test.js +7 -12
- package/dist/__tests__/server-tools.test.js.map +1 -1
- package/dist/__tests__/sql-tools.test.js +169 -0
- package/dist/__tests__/sql-tools.test.js.map +1 -1
- package/dist/db-manager.d.ts +17 -2
- package/dist/db-manager.d.ts.map +1 -1
- package/dist/db-manager.js +138 -45
- package/dist/db-manager.js.map +1 -1
- package/dist/index.js +49 -17
- package/dist/index.js.map +1 -1
- package/dist/tools/server-tools.d.ts +0 -2
- package/dist/tools/server-tools.d.ts.map +1 -1
- package/dist/tools/server-tools.js +2 -5
- package/dist/tools/server-tools.js.map +1 -1
- package/dist/tools/sql-tools.d.ts +33 -0
- package/dist/tools/sql-tools.d.ts.map +1 -1
- package/dist/tools/sql-tools.js +264 -0
- package/dist/tools/sql-tools.js.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/retry.d.ts +21 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +54 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -199,11 +199,13 @@ Lists all configured PostgreSQL servers. Returns server names, hosts, ports, and
|
|
|
199
199
|
|
|
200
200
|
**Returns:**
|
|
201
201
|
|
|
202
|
-
- `servers`: Array of server information (name,
|
|
202
|
+
- `servers`: Array of server information (name, isConnected, isDefault, defaultDatabase, defaultSchema)
|
|
203
203
|
- `currentServer`: Currently connected server name (or null)
|
|
204
204
|
- `currentDatabase`: Currently connected database (or null)
|
|
205
205
|
- `currentSchema`: Current schema (or null)
|
|
206
206
|
|
|
207
|
+
**Note:** Host and port are intentionally hidden from responses for security.
|
|
208
|
+
|
|
207
209
|
#### `list_databases`
|
|
208
210
|
|
|
209
211
|
Lists databases in a specific PostgreSQL server. Always provide the server name to avoid confusion.
|
|
@@ -233,7 +235,7 @@ Switch to a different PostgreSQL server and optionally a specific database and s
|
|
|
233
235
|
|
|
234
236
|
#### `get_current_connection`
|
|
235
237
|
|
|
236
|
-
Returns details about the current database connection including server, database, schema,
|
|
238
|
+
Returns details about the current database connection including server, database, schema, and access mode.
|
|
237
239
|
|
|
238
240
|
**Parameters:** None
|
|
239
241
|
|
|
@@ -243,8 +245,6 @@ Returns details about the current database connection including server, database
|
|
|
243
245
|
- `server`: Current server name
|
|
244
246
|
- `database`: Current database name
|
|
245
247
|
- `schema`: Current schema name
|
|
246
|
-
- `host`: Server hostname
|
|
247
|
-
- `port`: Server port
|
|
248
248
|
- `accessMode`: "readonly" or "full"
|
|
249
249
|
|
|
250
250
|
### Schema & Object Exploration
|
|
@@ -303,6 +303,34 @@ Executes SQL statements on the database. Supports pagination and parameterized q
|
|
|
303
303
|
|
|
304
304
|
**Note:** Large outputs are automatically written to a temp file, and the file path is returned. This prevents token wastage when dealing with large result sets.
|
|
305
305
|
|
|
306
|
+
#### `execute_sql_file`
|
|
307
|
+
|
|
308
|
+
Executes a `.sql` file from the filesystem. Useful for running migration scripts, schema changes, or data imports.
|
|
309
|
+
|
|
310
|
+
**Parameters:**
|
|
311
|
+
|
|
312
|
+
- `filePath` (required): Absolute or relative path to the `.sql` file to execute
|
|
313
|
+
- `useTransaction` (optional): Wrap execution in a transaction (default: true). If any statement fails, all changes are rolled back.
|
|
314
|
+
- `stopOnError` (optional): Stop execution on first error (default: true). If false, continues with remaining statements and collects all errors.
|
|
315
|
+
|
|
316
|
+
**Returns:**
|
|
317
|
+
|
|
318
|
+
- `success`: Whether all statements executed successfully
|
|
319
|
+
- `filePath`: Resolved file path
|
|
320
|
+
- `fileSize`: File size in bytes
|
|
321
|
+
- `totalStatements`: Total executable statements in the file
|
|
322
|
+
- `statementsExecuted`: Number of successfully executed statements
|
|
323
|
+
- `statementsFailed`: Number of failed statements
|
|
324
|
+
- `executionTimeMs`: Total execution time in milliseconds
|
|
325
|
+
- `rowsAffected`: Total rows affected by all statements
|
|
326
|
+
- `errors`: (When stopOnError=false) Array of error details:
|
|
327
|
+
- `statementIndex`: Which statement failed (1-based)
|
|
328
|
+
- `sql`: The failing SQL (truncated to 200 chars)
|
|
329
|
+
- `error`: Error message
|
|
330
|
+
- `rollback`: Whether a rollback was performed
|
|
331
|
+
|
|
332
|
+
**Limits:** Max file size: 50MB. Supports PostgreSQL-specific syntax including dollar-quoted strings and block comments.
|
|
333
|
+
|
|
306
334
|
#### `explain_query`
|
|
307
335
|
|
|
308
336
|
Gets the execution plan for a SQL query.
|
|
@@ -395,6 +423,37 @@ Performs comprehensive database health checks including:
|
|
|
395
423
|
3. Take action on recommendations
|
|
396
424
|
```
|
|
397
425
|
|
|
426
|
+
### Execute SQL Migration File
|
|
427
|
+
|
|
428
|
+
```
|
|
429
|
+
1. Use execute_sql_file with filePath="/path/to/migration.sql"
|
|
430
|
+
2. By default, runs in a transaction - all changes rolled back on error
|
|
431
|
+
3. Set stopOnError=false to continue on errors and get a full report
|
|
432
|
+
4. Set useTransaction=false for DDL statements that can't run in transactions
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
## Features
|
|
436
|
+
|
|
437
|
+
### Auto-Reconnect on Connection Errors
|
|
438
|
+
|
|
439
|
+
The server automatically handles stale database connections. When a connection error occurs (e.g., server went inactive, connection reset, timeout), the server will:
|
|
440
|
+
|
|
441
|
+
1. Detect the connection error
|
|
442
|
+
2. Invalidate the stale connection
|
|
443
|
+
3. Automatically reconnect using the stored server/database/schema
|
|
444
|
+
4. Retry the operation once
|
|
445
|
+
|
|
446
|
+
This is particularly useful for:
|
|
447
|
+
- Staging/development servers that go idle
|
|
448
|
+
- Cloud databases with connection timeouts
|
|
449
|
+
- Network interruptions
|
|
450
|
+
|
|
451
|
+
Supported error patterns include: `Connection terminated`, `ECONNRESET`, `ETIMEDOUT`, `server closed the connection unexpectedly`, and PostgreSQL error codes like `57P01` (admin_shutdown), `08003` (connection_does_not_exist), etc.
|
|
452
|
+
|
|
453
|
+
### Hidden Connection Details
|
|
454
|
+
|
|
455
|
+
Host URLs, ports, and credentials are never exposed in tool responses. Only server names (aliases) are visible, preventing accidental exposure of infrastructure details.
|
|
456
|
+
|
|
398
457
|
## Security
|
|
399
458
|
|
|
400
459
|
- **Access Mode**: By default, the server runs in **full access mode**. Set `POSTGRES_ACCESS_MODE=readonly` to prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.). Recommended for production environments.
|
|
@@ -402,6 +461,7 @@ Performs comprehensive database health checks including:
|
|
|
402
461
|
- **Query Timeout**: Default 30-second timeout prevents runaway queries.
|
|
403
462
|
- **Credentials**: Managed via environment variables and never logged or exposed through the MCP interface.
|
|
404
463
|
- **File Permissions**: Large output files are created with restricted permissions (0600).
|
|
464
|
+
- **Hidden Infrastructure**: Host URLs, ports, and passwords are never included in tool responses.
|
|
405
465
|
|
|
406
466
|
## Requirements
|
|
407
467
|
|
|
@@ -41,15 +41,6 @@ describe('Server Tools', () => {
|
|
|
41
41
|
expect(result.servers.map((s) => s.name)).toContain('dev_backup');
|
|
42
42
|
expect(result.servers.map((s) => s.name)).not.toContain('prod');
|
|
43
43
|
});
|
|
44
|
-
it('should filter servers by host', async () => {
|
|
45
|
-
process.env.POSTGRES_SERVERS = JSON.stringify({
|
|
46
|
-
server1: { host: 'us-east.example.com', port: '5432', username: 'user', password: 'pass' },
|
|
47
|
-
server2: { host: 'us-west.example.com', port: '5432', username: 'user', password: 'pass' },
|
|
48
|
-
server3: { host: 'eu.example.com', port: '5432', username: 'user', password: 'pass' }
|
|
49
|
-
});
|
|
50
|
-
const result = await listServers({ filter: 'us-' });
|
|
51
|
-
expect(result.servers).toHaveLength(2);
|
|
52
|
-
});
|
|
53
44
|
it('should show server connection status', async () => {
|
|
54
45
|
process.env.POSTGRES_SERVERS = JSON.stringify({
|
|
55
46
|
dev: { host: 'localhost', port: '5432', username: 'user', password: 'pass' }
|
|
@@ -57,12 +48,16 @@ describe('Server Tools', () => {
|
|
|
57
48
|
const result = await listServers({});
|
|
58
49
|
expect(result.servers[0].isConnected).toBe(false);
|
|
59
50
|
});
|
|
60
|
-
it('should
|
|
51
|
+
it('should not expose host or port in response', async () => {
|
|
61
52
|
process.env.POSTGRES_SERVERS = JSON.stringify({
|
|
62
|
-
dev: { host: '
|
|
53
|
+
dev: { host: 'secret.example.com', port: '5432', username: 'user', password: 'pass' }
|
|
63
54
|
});
|
|
64
55
|
const result = await listServers({});
|
|
65
|
-
|
|
56
|
+
// Verify host and port are not exposed
|
|
57
|
+
expect(result.servers[0]).not.toHaveProperty('host');
|
|
58
|
+
expect(result.servers[0]).not.toHaveProperty('port');
|
|
59
|
+
expect(result.servers[0]).toHaveProperty('name');
|
|
60
|
+
expect(result.servers[0]).toHaveProperty('isConnected');
|
|
66
61
|
});
|
|
67
62
|
});
|
|
68
63
|
describe('listDatabases', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/server-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/server-tools.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,12 @@ jest.unstable_mockModule('../db-manager.js', () => ({
|
|
|
15
15
|
// Dynamic import after mock
|
|
16
16
|
let executeSql;
|
|
17
17
|
let explainQuery;
|
|
18
|
+
let executeSqlFile;
|
|
18
19
|
beforeAll(async () => {
|
|
19
20
|
const module = await import('../tools/sql-tools.js');
|
|
20
21
|
executeSql = module.executeSql;
|
|
21
22
|
explainQuery = module.explainQuery;
|
|
23
|
+
executeSqlFile = module.executeSqlFile;
|
|
22
24
|
});
|
|
23
25
|
describe('SQL Tools', () => {
|
|
24
26
|
beforeEach(() => {
|
|
@@ -280,5 +282,172 @@ describe('SQL Tools', () => {
|
|
|
280
282
|
});
|
|
281
283
|
});
|
|
282
284
|
});
|
|
285
|
+
describe('executeSqlFile', () => {
|
|
286
|
+
let mockClient;
|
|
287
|
+
let testDir;
|
|
288
|
+
let testFile;
|
|
289
|
+
beforeEach(() => {
|
|
290
|
+
mockClient = {
|
|
291
|
+
query: jest.fn(),
|
|
292
|
+
release: jest.fn()
|
|
293
|
+
};
|
|
294
|
+
mockGetClient.mockResolvedValue(mockClient);
|
|
295
|
+
// Create unique test directory for each test run
|
|
296
|
+
testDir = fs.mkdtempSync('/tmp/postgres-mcp-test-');
|
|
297
|
+
testFile = `${testDir}/test.sql`;
|
|
298
|
+
});
|
|
299
|
+
afterEach(() => {
|
|
300
|
+
// Clean up test files and directory
|
|
301
|
+
try {
|
|
302
|
+
if (fs.existsSync(testFile)) {
|
|
303
|
+
fs.unlinkSync(testFile);
|
|
304
|
+
}
|
|
305
|
+
if (fs.existsSync(testDir)) {
|
|
306
|
+
fs.rmdirSync(testDir);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch (e) {
|
|
310
|
+
// Ignore cleanup errors
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
it('should require filePath parameter', async () => {
|
|
314
|
+
await expect(executeSqlFile({ filePath: '' }))
|
|
315
|
+
.rejects.toThrow('filePath parameter is required');
|
|
316
|
+
});
|
|
317
|
+
it('should only allow .sql files', async () => {
|
|
318
|
+
await expect(executeSqlFile({ filePath: '/path/to/file.txt' }))
|
|
319
|
+
.rejects.toThrow('Only .sql files are allowed');
|
|
320
|
+
await expect(executeSqlFile({ filePath: '/path/to/file.js' }))
|
|
321
|
+
.rejects.toThrow('Only .sql files are allowed');
|
|
322
|
+
});
|
|
323
|
+
it('should throw if file does not exist', async () => {
|
|
324
|
+
await expect(executeSqlFile({ filePath: '/nonexistent/path/file.sql' }))
|
|
325
|
+
.rejects.toThrow('File not found');
|
|
326
|
+
});
|
|
327
|
+
it('should throw if file is empty', async () => {
|
|
328
|
+
fs.writeFileSync(testFile, '');
|
|
329
|
+
await expect(executeSqlFile({ filePath: testFile }))
|
|
330
|
+
.rejects.toThrow('File is empty');
|
|
331
|
+
});
|
|
332
|
+
it('should execute single statement successfully', async () => {
|
|
333
|
+
fs.writeFileSync(testFile, 'SELECT 1;');
|
|
334
|
+
mockClient.query
|
|
335
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
336
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 1
|
|
337
|
+
.mockResolvedValueOnce({}); // COMMIT
|
|
338
|
+
const result = await executeSqlFile({ filePath: testFile });
|
|
339
|
+
expect(result.success).toBe(true);
|
|
340
|
+
expect(result.statementsExecuted).toBe(1);
|
|
341
|
+
expect(result.statementsFailed).toBe(0);
|
|
342
|
+
expect(result.executionTimeMs).toBeGreaterThanOrEqual(0);
|
|
343
|
+
expect(mockClient.release).toHaveBeenCalled();
|
|
344
|
+
});
|
|
345
|
+
it('should execute multiple statements', async () => {
|
|
346
|
+
fs.writeFileSync(testFile, 'SELECT 1; SELECT 2; SELECT 3;');
|
|
347
|
+
mockClient.query
|
|
348
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
349
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 1
|
|
350
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 2
|
|
351
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 3
|
|
352
|
+
.mockResolvedValueOnce({}); // COMMIT
|
|
353
|
+
const result = await executeSqlFile({ filePath: testFile });
|
|
354
|
+
expect(result.success).toBe(true);
|
|
355
|
+
expect(result.statementsExecuted).toBe(3);
|
|
356
|
+
expect(result.totalStatements).toBe(3);
|
|
357
|
+
});
|
|
358
|
+
it('should rollback on error with useTransaction=true', async () => {
|
|
359
|
+
fs.writeFileSync(testFile, 'SELECT 1; INVALID SQL; SELECT 3;');
|
|
360
|
+
mockClient.query
|
|
361
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
362
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 1
|
|
363
|
+
.mockRejectedValueOnce(new Error('syntax error')) // INVALID SQL
|
|
364
|
+
.mockResolvedValueOnce({}); // ROLLBACK
|
|
365
|
+
const result = await executeSqlFile({ filePath: testFile });
|
|
366
|
+
expect(result.success).toBe(false);
|
|
367
|
+
expect(result.statementsExecuted).toBe(1);
|
|
368
|
+
expect(result.statementsFailed).toBe(1);
|
|
369
|
+
expect(result.error).toContain('syntax error');
|
|
370
|
+
expect(result.rollback).toBe(true);
|
|
371
|
+
expect(result.errors).toHaveLength(1);
|
|
372
|
+
expect(result.errors[0].statementIndex).toBe(2);
|
|
373
|
+
});
|
|
374
|
+
it('should continue on error with stopOnError=false', async () => {
|
|
375
|
+
fs.writeFileSync(testFile, 'SELECT 1; INVALID SQL; SELECT 3;');
|
|
376
|
+
mockClient.query
|
|
377
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
378
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 1
|
|
379
|
+
.mockRejectedValueOnce(new Error('syntax error')) // INVALID SQL
|
|
380
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 3
|
|
381
|
+
.mockResolvedValueOnce({}); // COMMIT
|
|
382
|
+
const result = await executeSqlFile({ filePath: testFile, stopOnError: false });
|
|
383
|
+
expect(result.success).toBe(false); // Not success because there was a failure
|
|
384
|
+
expect(result.statementsExecuted).toBe(2);
|
|
385
|
+
expect(result.statementsFailed).toBe(1);
|
|
386
|
+
expect(result.errors).toHaveLength(1);
|
|
387
|
+
expect(result.errors[0].statementIndex).toBe(2);
|
|
388
|
+
expect(result.errors[0].error).toContain('syntax error');
|
|
389
|
+
});
|
|
390
|
+
it('should skip transaction with useTransaction=false', async () => {
|
|
391
|
+
fs.writeFileSync(testFile, 'SELECT 1;');
|
|
392
|
+
mockClient.query.mockResolvedValue({ rowCount: 1 });
|
|
393
|
+
await executeSqlFile({ filePath: testFile, useTransaction: false });
|
|
394
|
+
// Verify no BEGIN/COMMIT calls
|
|
395
|
+
const calls = mockClient.query.mock.calls.map((c) => c[0]);
|
|
396
|
+
expect(calls).not.toContain('BEGIN');
|
|
397
|
+
expect(calls).not.toContain('COMMIT');
|
|
398
|
+
});
|
|
399
|
+
it('should handle comments correctly', async () => {
|
|
400
|
+
fs.writeFileSync(testFile, `
|
|
401
|
+
-- This is a comment
|
|
402
|
+
SELECT 1;
|
|
403
|
+
/* Block comment */
|
|
404
|
+
SELECT 2;
|
|
405
|
+
`);
|
|
406
|
+
mockClient.query
|
|
407
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
408
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 1
|
|
409
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 2
|
|
410
|
+
.mockResolvedValueOnce({}); // COMMIT
|
|
411
|
+
const result = await executeSqlFile({ filePath: testFile });
|
|
412
|
+
expect(result.success).toBe(true);
|
|
413
|
+
expect(result.statementsExecuted).toBe(2);
|
|
414
|
+
});
|
|
415
|
+
it('should handle dollar-quoted strings', async () => {
|
|
416
|
+
fs.writeFileSync(testFile, `
|
|
417
|
+
SELECT $tag$This has a ; semicolon$tag$;
|
|
418
|
+
SELECT 2;
|
|
419
|
+
`);
|
|
420
|
+
mockClient.query
|
|
421
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
422
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // First SELECT
|
|
423
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 2
|
|
424
|
+
.mockResolvedValueOnce({}); // COMMIT
|
|
425
|
+
const result = await executeSqlFile({ filePath: testFile });
|
|
426
|
+
expect(result.success).toBe(true);
|
|
427
|
+
expect(result.statementsExecuted).toBe(2);
|
|
428
|
+
});
|
|
429
|
+
it('should return file info in result', async () => {
|
|
430
|
+
const content = 'SELECT 1;';
|
|
431
|
+
fs.writeFileSync(testFile, content);
|
|
432
|
+
mockClient.query
|
|
433
|
+
.mockResolvedValueOnce({}) // BEGIN
|
|
434
|
+
.mockResolvedValueOnce({ rowCount: 1 }) // SELECT 1
|
|
435
|
+
.mockResolvedValueOnce({}); // COMMIT
|
|
436
|
+
const result = await executeSqlFile({ filePath: testFile });
|
|
437
|
+
expect(result.filePath).toContain('test.sql');
|
|
438
|
+
expect(result.fileSize).toBe(content.length);
|
|
439
|
+
});
|
|
440
|
+
it('should release client even on error', async () => {
|
|
441
|
+
fs.writeFileSync(testFile, 'SELECT 1;');
|
|
442
|
+
mockClient.query.mockRejectedValue(new Error('Connection error'));
|
|
443
|
+
try {
|
|
444
|
+
await executeSqlFile({ filePath: testFile });
|
|
445
|
+
}
|
|
446
|
+
catch (e) {
|
|
447
|
+
// Expected
|
|
448
|
+
}
|
|
449
|
+
expect(mockClient.release).toHaveBeenCalled();
|
|
450
|
+
});
|
|
451
|
+
});
|
|
283
452
|
});
|
|
284
453
|
//# sourceMappingURL=sql-tools.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/sql-tools.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/sql-tools.test.ts"],"names":[],"mappings":"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"}
|
package/dist/db-manager.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PoolClient, QueryResult, QueryResultRow } from
|
|
2
|
-
import { ServerConfig, ServersConfig, ConnectionState, ConnectionInfo, DatabaseInfo } from
|
|
1
|
+
import { PoolClient, QueryResult, QueryResultRow } from "pg";
|
|
2
|
+
import { ServerConfig, ServersConfig, ConnectionState, ConnectionInfo, DatabaseInfo } from "./types.js";
|
|
3
3
|
export declare class DatabaseManager {
|
|
4
4
|
private serversConfig;
|
|
5
5
|
private connectionState;
|
|
@@ -23,6 +23,21 @@ export declare class DatabaseManager {
|
|
|
23
23
|
query<T extends QueryResultRow = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
|
|
24
24
|
getClient(): Promise<PoolClient>;
|
|
25
25
|
close(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Invalidates the current connection without clearing the connection state.
|
|
28
|
+
* This allows for automatic reconnection using the stored server/database/schema.
|
|
29
|
+
*/
|
|
30
|
+
invalidateConnection(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Reconnects to the current server/database/schema.
|
|
33
|
+
* Uses the stored connection state to re-establish the connection.
|
|
34
|
+
* @returns true if reconnection was successful, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
reconnect(): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if an error indicates a stale/broken connection that should trigger reconnection.
|
|
39
|
+
*/
|
|
40
|
+
static isConnectionError(error: any): boolean;
|
|
26
41
|
isReadOnly(): boolean;
|
|
27
42
|
setReadOnlyMode(readOnly: boolean): void;
|
|
28
43
|
setQueryTimeout(timeoutMs: number): void;
|
package/dist/db-manager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-manager.d.ts","sourceRoot":"","sources":["../src/db-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"db-manager.d.ts","sourceRoot":"","sources":["../src/db-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAwKpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,cAAc,CAAS;gBAG7B,YAAY,GAAE,OAAc,EAC5B,cAAc,GAAE,MAAiC;IAYnD,OAAO,CAAC,iBAAiB;IAiBlB,gBAAgB,IAAI,aAAa;IAKjC,cAAc,IAAI,MAAM,EAAE;IAI1B,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAOxD,eAAe,IAAI,eAAe;IAIlC,WAAW,IAAI,OAAO;IAItB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAW/B,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAkET,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAStC,iBAAiB,IAAI,cAAc;IAU7B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAepC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAcxC,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,GAAG,EAC/C,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA8Bb,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAShC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUnC;;;OAGG;IACU,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWlD;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAiC1C;;OAEG;WACW,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAyD7C,UAAU,IAAI,OAAO;IAIrB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIxC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAMhD;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,eAAe,CAS9C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
|