on GitHub" data-tooltip-id=":R1blcldtb:">v2.5.1·Edited Dec 6·
In this chapter, you'll learn how to add check constraints to your data model.
A check constraint is a condition that must be satisfied by records inserted into a database table, otherwise an error is thrown.
For example, if you have a data model with a price
property, you want to only allow positive number values. So, you add a check constraint that fails when inserting a record with a negative price value.
To set check constraints on a data model, use the checks
method. This method accepts an array of check constraints to apply on the data model.
For example, to set a check constraint on a price
property that ensures its value can only be a positive number:
The item passed in the array parameter of checks
can be a callback function that accepts as a parameter an object whose keys are the names of the properties in the data model schema, and values the respective column name in the database.
The function returns a string indicating the SQL check constraint expression. In the expression, use the columns
parameter to access a property's column name.
You can also pass an object to the checks
method:
The object accepts the following properties:
name
: The check constraint's name.expression
: A function similar to the one that can be passed to the array. It accepts an object of columns and returns an SQL check constraint expression.After adding the check constraint, make sure to generate and run migrations if you already have the table in the database. Otherwise, the check constraint won't be reflected.
To generate a migration for the data model's module then reflect it on the database, run the following command:
The first command generates the migration under the migrations
directory of your module's directory, and the second reflects it on the database.