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.
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.db/migrations
folderblitz prisma migrate dev
. This command will create the database
(if it does not already exist) and tables based on your schema.