SpiceDB is a database that stores permissions information, which must be updated as an application evolves. Unlike general-purpose databases, SpiceDB allows for permission calculations to be written and checked without migrations, making certain types of migrations simpler or even unnecessary. This is achieved through its schema design, where relationships are written but permissions are computed over them, allowing changes to be made without affecting existing data. However, in cases where migrations are required, SpiceDB provides a set of strategies for safe and efficient migration, including ensuring that new relationships can always be added to an existing schema and removing relations only if there are no references to it. The database also enforces rules to prevent conflicts during migration, such as requiring a TOUCH operation when backfilling relationships.