Database Overview
info
If you are totally new to Databases, check out
Prisma’s Data Guide which covers the very large majority of everything you might want to know.
By default, Blitz uses Prisma 2 which is a strongly typed database client.
Prisma 2 is not required for Blitz. You can use anything you want, such as Mongo, TypeORM, etc.
Read the Prisma documentation here
Add a Database Table
- Open
db/schema.prisma
and add your model(s) like as follows:
model Project { id Int @default(autoincrement()) @id name String tasks Task[]}model Task { id Int @default(autoincrement()) @id name String project Project @relation(fields: [projectId], references: [id]) projectId Int}
If you need,
- Then run
blitz prisma migrate dev --preview-feature
in your terminal to apply the changes - Now you can import
db
fromdb/index.ts
and create a model like this:db.project.create({data: {name: 'Hello'}})
Switch to PostgreSQL
By default, a Blitz app is created with a local SQLite database. If you want to use PostgreSQL instead, you need to perform the following steps:
- Install and run Postgres locally.
- Open
db/schema.prisma
and change the db provider value from"sqlite"
to"postgres"
as follows:
datasource db { provider = "postgres" url = env("DATABASE_URL")}
- In
.env.local
, changeDATABASE_URL
. For convenience, there is a commented-out PostgreSQLDATABASE_URL
there already. Depending on your setup, you may need to modify the URL. - Run
blitz prisma migrate dev --preview-feature
. This command will create the database (if it does not already exist) and tables based on your schema.