Project schema overview
Contember project schema defines schema of your model, ACL and validation rules.
Model schema​
First let's look at the model schema, which is now the most important for us.
note
Make sure you have SchemaDefinition
imported in each file
import { SchemaDefinition as def } from "@contember/schema-definition"
Entity​
Basic unit in model schema is called entity. Each entity can have fields. There are two kind of fields - columns holding a value and relationships to other entities.
Each entity is represented as a PostgreSQL table.
You define an entity by exporting a class from the schema definition file
export class Post {}
You don't have to define a primary key, because every entity has "id" column by default.
Columns​
See columns chapter.
Relationships​
Allow you to set relationship between different entities. See relationships chapter.
ACL schema​
Defines user roles with permissions. For details see dedicated ACL chapter
Validation schema​
Allows you to set additional validation constraints on GraphQL input. See input validations
Migrations​
If you make a change in your project schema, you must create and apply a migration