MCPcopy
hub / github.com/prisma/prisma / setupPostgres

Function setupPostgres

packages/migrate/src/utils/setupPostgres.ts:12–34  ·  view source on GitHub ↗
(options: SetupParams)

Source from the content-addressed store, hash-verified

10}
11
12export async function setupPostgres(options: SetupParams): Promise<void> {
13 const { connectionString } = options
14 const { dirname } = options
15 const credentials = uriToCredentials(connectionString)
16
17 // Connect to default db
18 const dbDefault = new Client({
19 connectionString: connectionString.replace(credentials.database!, 'postgres'),
20 })
21 await dbDefault.connect()
22 await dbDefault.query(`DROP DATABASE IF EXISTS "${credentials.database}-shadowdb";`)
23 await dbDefault.query(`CREATE DATABASE "${credentials.database}-shadowdb";`)
24 await dbDefault.query(`DROP DATABASE IF EXISTS "${credentials.database}";`)
25 await dbDefault.query(`CREATE DATABASE "${credentials.database}";`)
26 await dbDefault.end()
27
28 if (dirname !== '') {
29 const migrationScript = await fs.readFile(path.join(dirname, 'setup.sql'), { encoding: 'utf-8' })
30
31 // Connect to final db and populate
32 await runQueryPostgres({ connectionString }, migrationScript)
33 }
34}
35
36export async function tearDownPostgres(options: SetupParams) {
37 const { connectionString } = options

Calls 5

uriToCredentialsFunction · 0.90
runQueryPostgresFunction · 0.85
endMethod · 0.80
connectMethod · 0.65
queryMethod · 0.45

Tested by 1

setupPostgresForViewsIOFunction · 0.72