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 which is a strongly typed database client.
Prisma is not required for Blitz. You can use anything you want, such as Mongo, TypeORM, etc.
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, reference the Prisma Schema documentation
blitz prisma migrate dev
in your terminal to apply the
changesdb
from db/index.ts
and create a model like
this:db.project.create({data: {name: 'Hello'}})
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:
db/schema.prisma
and change the db provider value from
"sqlite"
to "postgres"
as follows:datasource db {
provider = "postgres"
url = env("DATABASE_URL")
}
.env.local
, change DATABASE_URL
. For convenience, there is a
commented-out PostgreSQL DATABASE_URL
there already. Depending on
your setup, you may need to modify the URL..env.test.local
as well to use PostgreSQL in your test runs.
(It has to point to different database than your .env.local
)db/migrations
folderblitz prisma migrate dev
. This command will create the database
(if it does not already exist) and tables based on your schema.