Vitest testing module for prisma migrate and teardown scripts. See ⚡️ Vitest Environment for more details.
Environment runs prisma migrate deploy
in your application to bootstrap test database.
production
database if you are not carefull. Use this only on development
and always check your .env credentials
Environment will drop your test database depending on your adapter
Databases supported by now:
mysql
psql
sqlite
Example:
vite.config.ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
environment: 'prisma', // Required
environmentOptions: {
adapter: 'mysql',
envFile: '.env.test',
prismaEnvVarName: 'DATABASE_URL', // Optional
transformMode: 'ssr', // Optional
}
}
})
Name | Description | Default |
---|---|---|
adapter | Name database adapter. See Adapters | mysql |
envFile | Name of the .env file for test suite |
.env.test |
multiSchema | Option to support multiple prisma schemas | false |
schemaPrefix | Prefix to attach on the database name | |
prismaEnvVarName | The environment variable used for the Prisma DB connection URL | DATABASE_URL |
transformMode | This value determines how plugins will transform source code | ssr |
The following keys must be present on your .env.test
file:
Name | Description | Example |
---|---|---|
DATABASE_USER |
Database user credential | root |
DATABASE_PASS |
Database user password credential | root |
DATABASE_HOST |
Database connection host | localhost , 127.0.0.1 |
DATABASE_PORT |
Database connection port | 5432 , 3306 |
DATABASE_NAME |
Database name | mydb |
These credentials are necessary to construct the DATABASE_URL
env value (can be overridden, see above) to which the
prisma connection will be made.
See the Prisma database connections for
more information on how to properly set the connection URL from an environment variable.
If you are using the sqlite adapter only the DATABASE_NAME
env is required. The database file will be written to the
/tmp
directory.
Make sure to use only the name:
DATABASE_NAME=mydb
✔️DATABASE_NAME=mydb.db
✔️DATABASE_NAME=file:/mydb
✖️DATABASE_NAME=../mydb
✖️