Data sources
A data source determines how Prisma ORM connects your database, and is represented by the datasource
block in the Prisma schema. The following data source uses the postgresql
provider and includes a connection URL:
datasource db {
provider = "postgresql"
url = "postgresql://johndoe:mypassword@localhost:5432/mydb?schema=public"
}
A Prisma schema can only have one data source. However, you can:
- Programmatically override a data source
url
when creating yourPrismaClient
- Specify a different URL for Prisma Migrate's shadow database if you are working with cloud-hosted development databases
Note: Multiple provider support was removed in 2.22.0. Please see Deprecation of provider array notation for more information.
Securing database connections
Some data source provider
s allow you to configure your connection with SSL/TLS, and provide parameters for the url
to specify the location of certificates.
- Configuring an SSL connection with PostgreSQL
- Configuring an SSL connection with MySQL
- Configure a TLS connection with Microsoft SQL Server
Prisma ORM resolves SSL certificates relative to the ./prisma
directory. If your certificate files are located outside that directory, e.g. your project root directory, use relative paths for certificates:
datasource db {
provider = "postgresql"
url = "postgresql://johndoe:mypassword@localhost:5432/mydb?schema=public&sslmode=require&sslcert=../server-ca.pem&sslidentity=../client-identity.p12&sslpassword=<REDACTED>"
}