wasp/web/docs/tutorial/04-entities.md
Craig McIlwrath 60233dcbcc
Restructures docs (#1333)
Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
Co-authored-by: Filip Sodić <filip.sodic@gmail.com>
Co-authored-by: Filip Sodić <filip.sodic@fer.hr>
2023-08-11 16:47:49 +02:00

1.6 KiB

title
4. Database Entities

import useBaseUrl from '@docusaurus/useBaseUrl';

Entities are one of the most important concepts in Wasp and are how you define what gets stored in the database.

Since our Todo app is all about tasks, we will define a Task entity in the Wasp file:

// ...

entity Task {=psl
    id          Int     @id @default(autoincrement())
    description String
    isDone      Boolean @default(false)
psl=}

:::note Wasp uses Prisma as a way to talk to the database. You define entities by defining Prisma models using the Prisma Schema Language (PSL) between the {=psl psl=} tags.

Read more in the Entities section of the docs. :::

To update the database schema to include this entity, stop the wasp start process, if its running, and run:

wasp db migrate-dev

You'll need to do this any time you change an entity's definition. It instructs Prisma to create a new database migration and apply it to the database.

To take a look at the database and the new Task entity, run:

wasp db studio

This will open a new page in your browser to view and edit the data in your database.

<img alt="Todo App - Db studio showing Task schema" src={useBaseUrl('img/todo-app-db-studio-task-entity.png')} style={{ border: "1px solid black" }} />

Click on the Task entity and check out its fields! We don't have any data in our database yet, but we are about to change that.