MCPcopy
hub / github.com/drizzle-team/drizzle-orm / preparePostgresDB

Function preparePostgresDB

drizzle-kit/src/cli/connections.ts:28–534  ·  view source on GitHub ↗
(
	credentials: PostgresCredentials | {
		driver: 'pglite';
		client: PGlite;
	},
)

Source from the content-addressed store, hash-verified

26import type { SqliteCredentials } from './validations/sqlite';
27
28export const preparePostgresDB = async (
29 credentials: PostgresCredentials | {
30 driver: 'pglite';
31 client: PGlite;
32 },
33): Promise<
34 DB & {
35 packageName:
36 | '@aws-sdk/client-rds-data'
37 | 'pglite'
38 | 'pg'
39 | 'postgres'
40 | '@vercel/postgres'
41 | '@neondatabase/serverless';
42 proxy: Proxy;
43 transactionProxy: TransactionProxy;
44 migrate: (config: string | MigrationConfig) => Promise<void>;
45 }
46> => {
47 if ('driver' in credentials) {
48 const { driver } = credentials;
49 if (driver === 'aws-data-api') {
50 assertPackages('@aws-sdk/client-rds-data');
51 const { RDSDataClient, ExecuteStatementCommand, TypeHint } = await import(
52 '@aws-sdk/client-rds-data'
53 );
54 const { AwsDataApiSession, drizzle } = await import(
55 'drizzle-orm/aws-data-api/pg'
56 );
57 const { migrate } = await import('drizzle-orm/aws-data-api/pg/migrator');
58 const { PgDialect } = await import('drizzle-orm/pg-core');
59
60 const config: AwsDataApiSessionOptions = {
61 database: credentials.database,
62 resourceArn: credentials.resourceArn,
63 secretArn: credentials.secretArn,
64 };
65 const rdsClient = new RDSDataClient();
66 const session = new AwsDataApiSession(
67 rdsClient,
68 new PgDialect(),
69 undefined,
70 config,
71 undefined,
72 );
73
74 const db = drizzle(rdsClient, config);
75 const migrateFn = async (config: MigrationConfig) => {
76 return migrate(db, config);
77 };
78
79 const query = async (sql: string, params: any[]) => {
80 const prepared = session.prepareQuery(
81 { sql, params: params ?? [] },
82 undefined,
83 undefined,
84 false,
85 );

Callers 4

drizzleForPostgresFunction · 0.85
schema.tsFile · 0.85
pgPushFunction · 0.85
introspectPostgresFunction · 0.85

Calls 5

assertPackagesFunction · 0.90
normalisePGliteUrlFunction · 0.90
assertUnreachableFunction · 0.90
checkPackageFunction · 0.90
drizzleFunction · 0.50

Tested by

no test coverage detected